为提升您的使用体验,本站正在维护,部分功能暂时无法使用。如果本站文章无法解决您的问题,您想要向社区提问的话,请到 Twitter 上的 @FirefoxSupport 或 Reddit 上的 /r/firefox 提问,我们的支持社区将会很快回复您的疑问。

搜索 | 用户支持

防范以用户支持为名的诈骗。我们绝对不会要求您拨打电话或发送短信,及提供任何个人信息。请使用“举报滥用”选项报告涉及违规的行为。

详细了解

This code works in Chrome. How can I make it work in FF as well.

  • 7 个回答
  • 3 人有此问题
  • 6 次查看
  • 最后回复者为 cor-el

more options

function openWin(ID) { // open workshop ID in another window

   var URL = '/chatroom.php?ID='+ID;
   var name = 'Chat'+ID;   // so if you open it twice it reopens the window.
   var win = window.open(,name); // no URL - won't refresh

   if (win.location == "about:blank") { // new open
       win.location.href = URL; 
   } 
   win.focus();

}

This code is called on a "javascript link". The first call is to open the new window and switch to it. Any subsequent call is to reopen the window WITHOUT REFRESHING and switch to it.

As mentioned. The code works perfectly in Chrome. In Firefax 23.01 the focus call is ignored, leaving the background window or tab in the background.

For what its worth, it does the same in IE 10 either, but IE is a lost cause.

function openWin(ID) { // open workshop ID in another window var URL = '/chatroom.php?ID='+ID; var name = 'Chat'+ID; // so if you open it twice it reopens the window. var win = window.open('',name); // no URL - won't refresh if (win.location == "about:blank") { // new open win.location.href = URL; } win.focus(); } This code is called on a "javascript link". The first call is to open the new window and switch to it. Any subsequent call is to reopen the window WITHOUT REFRESHING and switch to it. As mentioned. The code works perfectly in Chrome. In Firefax 23.01 the focus call is ignored, leaving the background window or tab in the background. For what its worth, it does the same in IE 10 either, but IE is a lost cause.

所有回复 (7)

more options

Hi,

Leave feedback for Firefox developers, you can go to the Firefox Help menu and select Submit Feedback... or use this link. (You'll need to be on the latest version of Firefox to submit feedback). Your feedback gets collected at http://input.mozilla.org/, where a team of people read it and gather data about the most common issues.

We will get back to you ! Report if this helped ! Thanks!

more options

By default, scripts in pages are not allowed to change the window focus. The internal preference for this is named dom.disable_window_flip. Users can manually enable this capability for scripts (see: https://support.mozilla.org/en-US/que.../967108#answer-464407), but I suspect that few will do so.

You might not have noticed this before because you might have changed this preference a long time ago using the Advanced JavaScript settings dialog. When Firefox 23 removed that dialog, I think the settings in that dialog were reset to their default values.

more options

What is the value of the dom.disable_window_flip pref on the about:config page?

more options

dom.disable_window_flip has the default value of true.

Changing it to false does not alter the behavior of the routine.

由hobson42于修改

more options

I tested using a bookmarklet: *

javascript:var winTest = window.open("", "winTest1", "width=800,height=600"); winTest.focus(); if(winTest.location.href == "about:blank") winTest.location.href = "http://support.mozilla.org/"; void 0;

Note that I've switched the order of the statements so that winTest.focus() precedes accessing the location object.

When I am viewing a page on this site, the window opens as expected. If I switch focus back to my original window and run the bookmarklet again:

  • with dom.disable_window_flip set to its default value of true, the focus does not change correction: this does seem to work
  • with dom.disable_window_flip set to false, the focus does change

If I try the same bookmarklet from another site, I get a permission error (cross-domain violation) in the Browser Console (Ctrl+Shift+j) attempting to check the current href on the second run. This halted the script before it could change focus. That's why I switched the sequence of statements.

Can you replicate that?

* To create a bookmarklet, display the Bookmarks Toolbar, then copy the above string of code. Right-click the Bookmarks Toolbar, choose New Bookmark, paste the code into the Location box and choose any name you like.

由jscher2000 - Support Volunteer于修改

more options

My results are the same - it works whatever the value of dom.disable_window_flip is.

The first click, opens the window and loads it, and the pop-up becomes the front window.

The second click (on the back window) finds the pop-up, brings it to the front, and it does not refresh.

I modified the code in my function, and it still appears to ignore the focus() whatever the value of dom.disable_window_flip

BTW - my users can't or would be reluctant to change their configs, so I really need a solution that works with the default.

more options

A good place to ask advice about web development is at the mozillaZine "Web Development/Standards Evangelism" forum.

The helpers at that forum are more knowledgeable about web development issues.
You need to register at the mozillaZine forum site in order to post at that forum.