Thursday, March 31, 2011

Possible to set tab focus in IE7 from JavaScript

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.

From stackoverflow
  • 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.

  • 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.

  • 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.

0 comments:

Post a Comment