window.focus(),self.focus()无法在firefox中运行

时间:2010-03-28 14:52:48

标签: javascript jquery jquery-plugins

大家好我正在开发一个聊天应用程序...我有多个聊天窗口...我想知道哪个windw包含新消息...我有以下代码..

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();

                }
            }
    });
}

如果操作员同时参加聊天......

例如网址就像 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

如果user 16输入了我需要关注的消息

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

此代码可以正常使用IE而不是在Firefox中...请给我一个解决方案......上面的代码是在同一个html中

3 个答案:

答案 0 :(得分:11)

如果设置了安全选项,Firefox将仅服从引发窗口的请求,并且默认情况下不设置它。据我所知,Chrome根本不会关注focus()请求。 Safari确实服从focus()请求。

特定的Firefox设置位于“工具” - > “选项”(Linux上的“编辑 - >首选项”,可能是MacOS)对话框。有一个“内容”选项卡,其中有一个用于启用Javascript的复选框。与一起是一个“高级”按钮,它会显示另一个对话框,其中一个复选框可以通过页面代码找到允许(或禁止)窗口升高和降低的复选框。

编辑:这是一个测试页:http://gutfullofbeer.net/focus1.html,当页面调用{{1}时,您应该可以看到Firefox 引发一个窗口}}。您必须设置浏览器,以便在新的单独窗口而不是选项卡中打开新窗口(使用window.focus()创建),否则您可以在打开时撕下辅助页面的选项卡。 / p>

答案 1 :(得分:0)

我遇到了同样的问题,尽管我的JS脚本有问题,但经过长时间的搜索后,我找到了解决方法:

1)在新标签中,在地址栏中输入 about:config ,然后按“ Enter”按钮。点击按钮“我接受风险!”为了确认警告

2)在搜索字段中,输入 dom.disable 以获取 dom.disable_window_flip

3)如果属性 dom.disable_window_flip 为true,则双击它以将值从true切换为false

答案 2 :(得分:0)

对于希望专注于某个选项卡的其他人,另一个选项卡(选项卡 A)可以将不同的选项卡(选项卡 B)置于最前面。

如果选项卡 B 的 window.name 是“myWindow123”,则在选项卡 A 中运行:

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

如果您想重新关注打开您的选项卡,请运行:

window.open('', window.opener.name);