检测window.close()支持的有效解决方案

时间:2015-04-16 16:57:07

标签: javascript

我不知道这是否是发布此类主题的好地方,但经过一些研究,如何检测浏览器是否不支持JavaScript中的window.close()方法:

How do I programmatically detect how a browser handles window.close()?

Detecting if window.close worked

经过多次尝试,我认为我找到了一种可靠的解决方案,可以让这种方法发挥作用。

我在Mobile Safari(iOS)和Internet Explorer上测试它,当用户对现有确认回答“否”时。我发布了这个主题,因为我想知道有多少浏览器支持我找到的黑客,我需要测试人员。

有问题的代码:

function selfclose(){
    var quit = true;
    window.close(); // try to quit
    quit = false; // will be executed if not out of app or not supported
    setTimeout(function(){ // give a little delay for allowing browser to exit without firing error message
        if(!quit){
            alert("You haven't quit the website or your browser doesn't support self-closing.");
        }
    },400);
}

1 个答案:

答案 0 :(得分:0)

功能检测怎么样?这至少会告诉你浏览器是否具有该功能。至于浏览器的行为,我不确定如果它与标准不同,可以真正确定行为是什么。这是一个完善的生活标准。

var supportsclose = ("close" in window) 
&& typeof window["close"] === "function";

console.log(supportsclose);

https://developer.mozilla.org/en-US/docs/Web/API/Window/close