Javascript - IE浏览器窗口的其他实例中的URL检测

时间:2017-11-16 07:33:36

标签: javascript

我正在使用以下代码进行URL检测,如果它已经在任何浏览器窗口或选项卡中打开并且我到目前为止已经实现但是在一个实例中失败,即,如果url已经在其他窗口中打开然后如果我在IE的另一个窗口中启动应用程序,那么它不应该启动,因为一个实例已经打开并且已经打开的实例应该设置为焦点....

请指导我.....

var memberURL = document.URL;
var newWindowCopy = document.URL;
var winBrowser = window.clientInformation.appName;
var stringText = window.clientInformation.userAgent.toString();
var localVariable = "IamAliveInLocalStorage";

if (winBrowser == "Microsoft Internet Explorer" || stringText.indexOf('MSIE') >= 0) {
    if (localStorage.getItem("MyStorage") == localVariable) { 
            open(memberURL, newWindowCopy).close();
    }
    else {
        localStorage.setItem("MyStorage", localVariable);
        window.onbeforeunload = function () {
            localStorage.removeItem("MyStorage");
            localStorage.clear();
        };
    }
}
else { }

1 个答案:

答案 0 :(得分:0)

没有直接的方法来关注您没有参考的窗口或标签,即只有您打开的子窗口可以使用window.focus()方法进行关注。

但是你可以使用一种技巧,即alert()将焦点提取到窗口。

因此,在您的页面上,您可以添加支票

function focusOnOpenedTab() {
    var temp = localStorage.getItem('focusOnTab');
    localStorage.setItem('focusOnTab',JSON.stringify(~~temp+1));
}
if(// page is open in any window){
    focusOnOpenedTab()
} else {
    window.addEventListener("storage", message_receive);

    function message_receive(ev) {
        if (ev.key == 'focusOnTab') {
            var message=JSON.parse(ev.newValue);
            alert('focused');
        }
    }
}

您的网页将得到关注,并获得alert消息focused