Window.focus()无法在IE

时间:2015-11-05 09:49:09

标签: javascript html css internet-explorer

我想这可能是一个重复的问题,但现有的答案并没有多大帮助。

所以,我有以下功能,我已注册点击链接:

function open_new()
{ 
if (win===null)
{
win=window.open("url","_blank");
}
else{
win.location.href="url";
win.focus();}
}

不要担心逻辑。简单来说,如果用户在父窗口中第一次点击链接,它会在新窗口中打开网址,如窗口2所示。

现在问题出现了 - >我回到父窗口,然后再次单击该链接。它设置窗口2的href,重新加载但不聚焦。它仍然会保留在父窗口上。

注意:这在chrome中非常有效。

2 个答案:

答案 0 :(得分:0)

由于安全问题,IE8不允许此功能

查看这篇文章

https://support.microsoft.com/en-us/kb/979954

答案 1 :(得分:0)

确实,这似乎不适用于IE。改为在IE中重新打开窗口会有问题吗?您可以通过浏览器检查仅在IE中执行此操作或始终执行此操作。

function isIE() /* taken from http://stackoverflow.com/a/20881274/265165 */
{
    var isIE11 = navigator.userAgent.indexOf(".NET CLR") > -1;      
    var isIE11orLess = isIE11 || navigator.appVersion.indexOf("MSIE") != -1;
    return isIE11orLess;
}

var win;
function openWindow() {
    if (win == null) {
        win = window.open("url", "_blank");
    } 
    else if (isIE()) {
        win.close();
        win = window.open("url", "_blank");
    }
    else {
        win.location.href = "url";
        win.focus();
    }
);