函数 Window.focus 在 IE 中不起作用 (8, 9, 10, 11)



这是我的代码,这段代码打开新选项卡并专注于它。

  • 如果选项卡尚未打开,我将使用指定名称打开它。
  • 如果选项卡打开,我将使用 window.focus() 专注于它;

快速测试:http://jsfiddle.net/u2jd2oLw/1/

Javascript Code

var tabs = [];
$('#btnOpenTab').on('click', function(){
    openTab('http://google.com.vn', 'GG');
});

function openTab(url, tabNm) {
    try {
        if (tabs[tabNm]) {
            tabs[tabNm].focus();
        } else {
            var mTab = window.open(url, tabNm);
            tabs[tabNm] = mTab;
            tabs[tabNm].focus();
        }
    } catch(e) {
        alert(e.message);
    }
}

网页代码

<button id="btnOpenTab">Open Tab</button>

实际上,我在IE11中检查,发生了"访问被拒绝"

我试图通过取消选中复选框来关闭选项:"打开弹出窗口阻止程序"。

你有什么建议吗?

谢谢!!

这是

Windows中的安全功能:http://support.microsoft.com/kb/979954

以下是一些可以尝试的解决方法:

http://social.msdn.microsoft.com/Forums/en-US/iewebdevelopment/thread/a250c431-9f09-441c-9b78-af067233ed78

在 IE8 中为子窗口提供焦点

由于

安全问题,这将工作一次

$(function() {
  $('#btnOpenTab').on('click', function(){
    openTab('http://google.com.vn', 'GG');
  });
});
function openTab(url, tabNm) {
  var mTab = window.open("", tabNm);
  mTab.document.write('<body onload="window.focus(); location.replace(''+url+'')">Please wait...</body>');
  mTab.document.close();
}

运行两次失败,因为一旦页面加载,它就不再是相同的来源。

我尝试使用iFrame,但谷歌现在也阻止了它

最新更新