javascript - self.focus() 和 window.focus() 适用于 Safari,但不适用于 IE

标签 javascript window.open

我有这段代码可以执行 window.focus();self.focus(); 来留在当前窗口上,然后再继续显示消息到新打开的窗口。这在 Safari 上运行良好。浏览器在转到新窗口之前会在原始窗口上暂停指定的时间。在 Internet Explorer 上,浏览器完全忽略 self.focus(); 调用,对 window.focus(); 执行相同的操作。 IE 中是否有不同的方式来停留或聚焦于当前窗口。

    if ( show_message == true ) {
        var message_page = "livemass_message.php?message_id="+message_id;
        message_window = window.open (message_page,'_blank','width=600,height=200,top=200,left=300,alwaysRaised');
        self.focus();
        setTimeout(function() { external_window.focus(); message_window.focus(); }, 3500);
        setTimeout(function() { message_window.close(); }, 60000);
    }
    else {
        self.focus();
        setTimeout(function() { external_window.focus(); }, 3500);                      
    }

最佳答案

当我的页面每 5 分钟自动刷新一次时(因此,在正文加载中),我必须执行此操作,以确保窗口位于顶部。以下内容对我有用(仅使用 Internet Explorer 进行测试):

top.document.body.focus();

关于javascript - self.focus() 和 window.focus() 适用于 Safari,但不适用于 IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10625625/

相关文章:

javascript - 显示透明图像的形状

javascript - window.open 无法正常工作,解析 URL 被 chop

javascript - CRM 2011 - 从 IFrame 中的页面打开弹出窗口

Javascript 函数作用域与对象作用域

javascript - node-webkit:如何检测有多少屏幕/显示器用户在使用?

javascript - 如何使用 Javascript 删除网站上的所有文本

javascript - 使用解构访问嵌套在数组中的对象的属性

javascript - Chrome 在历史列表中不包含 window.open ("","_self")

javascript - 为什么 window.open 在 setTimeout <= 1000ms 时不会被阻塞?

Javascript window.open 和打印导致 IE8 挂起