setTimeout导致弹出窗口阻塞

时间:2016-07-08 01:05:28

标签: javascript html popup

我一直在四处寻找HTML和javascript的点点滴滴,把一个小东西放在一个弹出窗口中打开潘多拉而不是标签。我已经了解了我想要的地方,但是setTimeout存在问题。我的目标是让它打开HTML文件,然后打开弹出窗口并关闭选项卡或整个主浏览器窗口,只留下弹出窗口。我发现仅使用self.close似乎没有时间在关闭整个浏览器之前打开弹出窗口,而添加setTimeout会在延迟时关闭它但导致弹出窗口被阻止。我真的不知道关于javascript的任何事情,并且刚刚玩过,所以任何关于工作的帮助或其他延迟self.close的方式都将不胜感激。

到目前为止我得到了什么:

<html>
<title>Pandora</title>
<body onload="pandoraFunction(); setTimeout('closeFunction()', 3000)">

<script>
function pandoraFunction() {
    window.open('http://www.pandora.com','window','menubar=yes,screenX=0,screenY=0,top=0,left=0,location=no,status=no,toolbar=no,scrollbars=yes,resizable=no,width=' + (screen.width - 10) + ',height=' + screen.availHeight);
}
function closeFunction() {
    self.close()
}
</script>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

我相信这一切都很好......你只想使用window.close();代替self.close();

<html>
    <head>
        <title>Pandora</title>
    </head>
    <body onload="pandoraFunction(); setTimeout('closeFunction()', 3000)">
        <script>
            function pandoraFunction() {
              window.open('http://www.pandora.com','window','menubar=yes,screenX=0,screenY=0,top=0,left=0,location=no,status=no,toolbar=no,scrollbars=yes,resizable=no,width=' + (screen.width - 10) + ',height=' + screen.availHeight);
            }

            function closeFunction() {
              window.close()
            }
        </script>

    </body>
</html>

参考:How to close current tab in a browser window?