The new question
On Google Chrome, I can only focus()
windows if an element has been clicked.
The original question
How can I focus()
to a window using javascript, of which the popup window wasn’t created inside the same window I’m using to focus the webpage
var wnd = window.open("http://bing.co.uk", "stage");
Works fine for modifying popup windows that have been opened from a different webpage.
wnd.focus();
However this does not work as the stage window was already open, when the webpage with the wnd focus function was open.
Advertisement
Answer
Answer to your original question:
If you know that a window with that name exists, you can get a reference to it from a later call to window.open
(e.g., when you want to call blur
or focus
):
window.open("", "theWindowName").focus();
But of course, if the window doesn’t already exist, that will open a new window. Sadly, you can’t know in advance (except in your application logic) whether a window with that name already exists.
Once you have the window object, you can call blur
or focus
.
Answer to your completely different, new question:
On Google Chrome, I can only
focus()
windows if an element has been clicked.
If your code opened the window, you should be able to. For example:
HTML:
<button id="btnOpen">Open</button> <button id="btnFocus">Focus</button>
JavaScript:
jQuery(function($) { $("#btnOpen").click(function() { window.open( "about:blank", "theWindow", "width=500,height=500"); }); $("#btnFocus").click(function() { // Note that this happens a full second later, NOT // in direct response to a user event setTimeout(function() { window.open("", "theWindow").focus(); }, 1000); }); });