Question

Is it possible to launch a new window in JavaScript using the window.Open function, then set the focus to that tab?

Here's what I'm doing today:

            var winRef = window.open(outUrl,wName,'left='+ wX +',top=' + wY + ',height=' + wH + ',width=' + wW + args);
            try {
                // Not all window types support the focus() property.
                winRef.focus();
            }
            catch (exception) {
            }

The window opens, but the new tab doesn't receive focus.

Was it helpful?

Solution

Jay,

You are seeing designed behavior. To limit opportunities for malicious behavior, scripts running in tabbed windows cannot affect other tabs.

For more information, please see Tabbed Browsing for Developers at http://msdn.microsoft.com/en-us/library/ms537636.aspx :

"The ability to open multiple documents within the same browser window has certain practical and security implications [...] Active tabs (tabs with focus) cannot be affected by scripts that run in inactive or background tabs."

BR.

OTHER TIPS

As a user, I never want applications (or tabs) to take focus unless I specifically requested it. I have gone to great lengths to prevent tabs in my browser (Firefox) from taking focus for this reason.

I'm reasonably certain you can't shift focus to another tab.

My understanding is this is done to somewhat limit pop ups and other malicious content from stealing the users focus.

If the other "tab" is part of your application (and not content from another site) perhaps you should include it in a popup div on top of your main content instead of in a separate window; that way you can always control focusing it, deactivating the content under it (for modal dialogs), hiding it, etc.

As a user, shouldn't I be able to control how this operates?

What if there is an application that would be enhanced by this feature that I want to run - shouldn't I be able to grant a domain that privilege?

Just a thought.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top