Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
174
rated 0 times [  175] [ 1]  / answers: 1 / hits: 27996  / 11 Years ago, thu, august 29, 2013, 12:00:00

I can't seem to get this to work.



In response to a click, window A opens window B (which then has focus). Then, in response to a click on B, the window calls window.opener.focus(), but the focus does not go back to A.



I have found a strange, strange workaround for Chrome (29, possibly others).
If I run:



window.opener.name = 'somename';
window.open(window.opener.location.href, window.opener.name);
window.opener.focus();


it does work (and doesn't reload window A). But this doesn't work for Firefox, and it is probably a fluke anyway.



It seems very clear to me what opener and focus are supposed to do, but window.opener.focus() doesn't work. What am I missing?


More From » browser

 Answers
10

From the fine manual:




Makes a request to bring the window to the front. It may fail due to user settings and the window isn't guaranteed to be frontmost before this method returns.




Emphasis mine. Calling focus() is just a request and the browser is free to ignore you and you should generally expect to be ignored. Consider what sorts of nefarious things you could get up to by switching focus to a tiny window while someone is typing if you need some reasons why a browser would ignore your request.



If you need focus() to work for your application to work then you need to redesign your application so that it doesn't need to call focus().


[#76048] Wednesday, August 28, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
jailynbethanies

Total Points: 686
Total Questions: 119
Total Answers: 99

Location: Cook Islands
Member since Thu, May 21, 2020
4 Years ago
;