Csaba Gabor wrote :[color=blue]
> Gérard Talbot wrote:[color=green]
>> Csaba Gabor wrote :[color=darkred]
>>>
Alex.Svetos@gmail.com wrote:
>>>> I'm trying to get a popup to keep focus when it is re-clicked.
>>> As you understand by now, this statement of the problem is
>>> incorrect. Rather, you are trying to have a previously created
>>> popup regain focus when a link or button activating it is
>>> clicked.
>>> ...
>>> Indeed, this is a classic case of protectionism run amok.
>>> IE and FF both let you create a named window which they will bring to
>>> the top, especially provided that it was some user instigated
>>> through some user initiated action, such as clicking.[/color]
>> It's not that simple. A secondary window could have been brought up
>> legitimately; after some time, it could be reloaded with advertisement
>> content. Or who knows; a second click on a link could load a different
>> document. There are lots of possibilities, variations which a persistent
>> scripter could take advantage of.[/color]
>
> I'm not quite following your scenario and objection (advantage taking
> mechanism). Are you referring to:
> 1) Window A brings up named window B, and then A or B later reload B
> (which they are entitled to do)
> 2) Window A brings up named window B, and then a different window C in
> the same domain loads up B with new content. So at this point, is
> either A, B, or C allowed to (or ought to be allowed to) do a .focus()?
> 3) Window A brings up named window B, and then a different window C in
> a different domain loads up B with new content.
> 4) Something else.
>
> It would be nice if you would clarify specific scenario(s) that you
> have an issue with that the popup blocker does not protect against (ie.
> how could a persistent scripter take advantage?).
>[/color]
I was thinking of scenario 2 where document loaded in window A can
focus() document #3 in window B after being loaded.
[color=blue][color=green][color=darkred]
>>> To be clear, this is not a case of a window/app trying to
>>> raise itself to the top.[/color]
>> A setTimeout can do that though.
>> Some people create a modal window with
>> <body onblur="self.focus();">
>> you see.[/color]
>
> I like this because it's a specific instance that we can discuss.
> Woudn't it make sense to have window/self.focus() labor under the same
> restrictions as window.open? In other words, it has to be initiated by
> a physical user event within a certain time limit to have any effect.[/color]
Yes, it would make sense to have focus() work under the same
restrictions as window.open().
[color=blue]
> To go on a bit of a digression, the kind of behaviour you have
> mentioned can be achieved by an infinite loop of alerts.[/color]
Exactly. I happened to have demonstrated this in 2002 in a netscape7
newsgroup.
A solution to[color=blue]
> this would be to have FF always allow the underlying window to be
> closed (by, for example, clicking on its X button in the upper right
> corner or by having a context menu for close on the right click if the
> X is not visible).
>[/color]
An alert is a modal window; not any kind of normal secondary window. You
can not reach the parent-opener without first closing the modal window.
The modal window's opener can not be focused without first closing the
modal window.
[color=blue][color=green]
>> The main window is already at the top,[color=darkred]
>>> so if it wants to have a child window come to the top (which may
>>> be viewed as part of the same (already in focus) application),
>>> which it could do anyway with window.open, what is the problem
>>> in allowing window.focus()?
>>>[/color]
>> The window is not per se the problem: its content (actual, future,
>> potential) is. When a browser prevents an unrequested popup, it's not so
>> much the window that is the problem as it is its content (advertisement,
>> spamming content, annoyance of being served scam ads or anything which
>> is not related to the reasons to visit a site in the first place).
>>
>> If you visit some sites like netscape.com and yahoo.com, they are now
>> using DHTML layers to convey advertisement. No secondary windows
>> involved. But the same boring, annoying advertisement pollution.[/color]
>
> This is off topic for this thread. I hate those kinds of ads, too.
> However, opposition to popups has its basis in the fact that the user
> chose to look at a website in a given window, and that window is all
> the website is entitled to, except under limited circumstances (user
> initiated actions). However, this argument does not apply to the
> content of the web page itself. That browser window is the website's
> playground and if they want to annoy users by placing ads, that's their
> prerogative. That's what GreaseMonkey helps with.
>[/color]
It may not be that off topic. I was merely pointing out that it is
unwanted polluting content that annoy us. Put it into a DHTML layer or
in a window: in both cases, the users' system resources are used and
abused to annoy the users.
[color=blue][color=green][color=darkred]
>>> That is to say, it makes eminent sense that if a window, B,
>>> which was created by window A, comes to the top upon creation,
>>> that the same window B should come to the top upon a user
>>> initiated action leading to windowB.focus() The really silly
>>> way around this is to close windowB and then recreate it,[/color]
>> There are scripts available on the web that do exactly that: as the user
>> reclicks the link, the script closes windowB and then recreate it entirely.
>>
>> See the 9th link at
>>
https://bugzilla.mozilla.org/attachm...49&action=view[/color]
>
> What is the id of the associated bug ... How do I use the search page
> at
>
https://bugzilla.mozilla.org/query.cgi to figure out the bug associated
> with a given attachment number?[/color]
Titlebar or source code were indicating
<title>Testcase for bug 151142 and other related bugs</title>
[color=blue]
> And by the way, what is the bug that you are referring to in your last
> post in
>
http://groups.google.com/group/comp....d28fdaac54b3c/
> The link is broken.
>[/color]
I restructured my website recently. I will eventually remove all
references to NS 7.
What does the "Raise or lower windows" setting do exactly?
http://www.gtalbot.org/FirefoxSectio...seLowerSetting
[color=blue]
> Anyway, I am not fond of this idea of killing windows one is going to
> reuse just to get them to the top.
>[/color]
I certainly do not either: it's really a bad idea, abusing the users'
system resources.
[color=blue][color=green]
>> which[color=darkred]
>>> only serves to drive up internet traffic.
>>>
>>> This problem and two ways of dealing with it on FF are described at
>>>
https://bugzilla.mozilla.org/show_bug.cgi?id=318535
>>> If you agree with the assessment, I suggest voting for the bug
>>> to give it more visibility.
>>>[/color]
>> The bug hasn't even been confirmed yet![/color]
>
> What is your point?
>[/color]
My first point is that this bugreport is not well done and second point
it's not the correct bugreport to vote for if you want "Raise or lower
windows" to default to true, to have the default to allow scripts to
Raise or lower windows.
[color=blue][color=green]
>> And the bug is about respecting and maintaining user settings when
>> upgrading Fx.[/color]
>
> That is half the bug. But it is also about allowing window.focus() to
> focus a window that the caller has rights to.[/color]
A bugreport should always about 1 single issue per bug. And it should be
terse, clear and as clean as possible. In other words, no rant, no long
lecture. Bugzilla is not a newsgroup discussion forum, a place for
advocacy or debates, actually. It's only a place to report, investigate,
then confirm, test patches, fix bugs.
[color=blue]
>[color=green][color=darkred]
>>> Unfortunately, I don't know of a nice workaround (other than the
>>> brute force method in the bug report) for my IE 6 on Win XP Pro.[/color]
>> How about simply not using window.open() if your content is important
>> for the users to read, otherwise warn accordingly users about a
>> secondary window and do not rely too much on such window.open() +
>> window.focus() call.[/color]
>
> I have a web app for rapid development/prototyping. You put the input
> source material into a textbox in one window, press alt+s and up pops
> the result in the second window. For this type of scenario it makes
> sense for the content to be delivered to a second window and for the
> second window to remain where it is and for the second window to rise
> to the top. Any kind of per instance warning is not a solution.
>
> The user could always allow scripts to raise or lower windows (by the
> way, would you happen to know the corresponding pref.js setting?),[/color]
dom.disable_window_flip
but[color=blue]
> that allows access for any script. I am only suggesting that in
> situations where window.open would raise a new window to the top, there
> is nothing that is lost by allowing window.focus() to do the same.
>[/color]
Gérard
--
remove blah to email me