最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - window.focus(), self.focus() not working in firefox - Stack Overflow

programmeradmin2浏览0评论

Hi all i am developing a chat application ... i have multiple chat windows ... i want to know which windw contain new message ... i have the following code ..

function getCount()
{
    $.ajax({
       type: "POST",
       url: baseUrl + '/Chat/count',
       data: "chat_id=" + document.ajax.chat_id.value,
       success: function(msg){
                if(msg == 'new1') {
                    self.focus();
                                            //window.focus();

                }
            }
    });
}

If an operator attending both chat....

for example the url is like http://localhost/nisanth/admin/Chat/index/chatId/15 http://localhost/nisanth/admin/Chat/index/chatId/16

http://localhost/nisanth/user/Chat/index/chatId/15 http://localhost/nisanth/user/Chat/index/chatId/16

if the user 16 enter a message i need focus

http://localhost/nisanth/admin/Chat/index/chatId/16

This code is work fine with IE but not in firefox...please give me a solution... the above code is in the same html

Hi all i am developing a chat application ... i have multiple chat windows ... i want to know which windw contain new message ... i have the following code ..

function getCount()
{
    $.ajax({
       type: "POST",
       url: baseUrl + '/Chat/count',
       data: "chat_id=" + document.ajax.chat_id.value,
       success: function(msg){
                if(msg == 'new1') {
                    self.focus();
                                            //window.focus();

                }
            }
    });
}

If an operator attending both chat....

for example the url is like http://localhost/nisanth/admin/Chat/index/chatId/15 http://localhost/nisanth/admin/Chat/index/chatId/16

http://localhost/nisanth/user/Chat/index/chatId/15 http://localhost/nisanth/user/Chat/index/chatId/16

if the user 16 enter a message i need focus

http://localhost/nisanth/admin/Chat/index/chatId/16

This code is work fine with IE but not in firefox...please give me a solution... the above code is in the same html

Share Improve this question edited Mar 28, 2010 at 15:02 Nisanth Kumar asked Mar 28, 2010 at 14:52 Nisanth KumarNisanth Kumar 5,7158 gold badges35 silver badges43 bronze badges 8
  • 1 I don't see how that can work in IE; self is undefined in the quoted code. If it's defined elsewhere, best to show that since it's kind of important to know what it's meant to reference. – T.J. Crowder Commented Mar 28, 2010 at 14:55
  • How does "...i want to know which window contain new message..." relate to focus not doing what you expect? (Also, can you explain more what you mean by that?) – T.J. Crowder Commented Mar 28, 2010 at 14:57
  • @Nisanth: window may be, but again, not self unless you're defining it somewhere else. self is not a built-in object. It's the name a lot of people use inside a closure they're passing as a callback/event handler when they want to refer to the this value from within the closure, but to do that, you have to actually define it (e.g., var self= this;). – T.J. Crowder Commented Mar 28, 2010 at 14:57
  • self.focus() is working in IE8 – Nisanth Kumar Commented Mar 28, 2010 at 15:13
  • Well whatever, @Nisanth; it's irrelevant to the question of what will work in Firefox, because in Firefox it's under user control. – Pointy Commented Mar 28, 2010 at 15:16
 |  Show 3 more comments

3 Answers 3

Reset to default 13

Firefox will only obey requests to raise a window if a security option is set, and it's not set by default. Chrome won't pay attention to focus() requests at all, as far as I can tell. Safari does obey focus() request.

The specific Firefox setting is in the "Tools" -> "Options" ("Edit -> Preferences" on Linux, maybe MacOS) dialog. There's a "Content" tab, and in that there's a checkbox for enabling Javascript. Along with that is an "Advanced" button that brings up another dialog, wherein one finds a checkbox to allow (or disallow) the raising and lowering of windows by page code.

edit: Here is a test page: http://gutfullofbeer.net/focus1.html and you should be able to see that Firefox will raise a window when the page calls window.focus(). You must either have the browser set up so that new windows (created with window.open()) open up in a new separate window instead of a tab, or else you can tear off the tab of the secondary page when it opens.

I had the same problem, i though there was a problem with my JS script, after a long search i have found a solution:

1) In a new tab, type about:config in the address bar and press button "Enter". Click the button "I accept the risk!" in order to confirm the warning

2) In the search field, type dom.disable to get dom.disable_window_flip

3) If the property dom.disable_window_flip is true, double-click it to switch the value from true to false

For anyone else looking to focus on a tab, another tab (tab A) can bring a different tab (tab B) to the front.

If the window.name of tab B is 'myWindow123', then in tab A run this:

window.open('', 'myWindow123');

If you want to re-focus on the tab that opened you, run:

window.open('', window.opener.name);
发布评论

评论列表(0)

  1. 暂无评论