自动运行序列

时间:2014-01-29 16:26:44

标签: javascript html

好的,所以我想要一个带有一个按钮的html页面。当我按下按钮时,我想要关闭我的按钮的页面,并运行我的javascript序列。当我到达youtube.com(10秒后)我想要关闭窗口。

有人知道这是否有效?

<html>
    <head>
        <script language="JavaScript" type="text/javascript">

        var my_window;

        function OpenWin()
        {
            my_window=window.open("http://www.yahoo.com", "_blank", "resizable=yes, scrollbars=yes, titlebar=yes, width=1000, height=800, top=10, left=10");
            setTimeout("GoUrl('http://www.youtube.com')", 10000);

        }
        function GoUrl(Url)
        {
            my_window.location=Url;
        }

        </script>
    </head>
    <body>
        <button onclick="OpenWin()">Open Window</button>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

除非使用脚本打开该窗口本身,否则无法关闭包含该按钮的窗口。请参阅window.close()上的文档:

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

然而,可以关闭my_window,因为它是使用window.open()创建的。如果您希望my_window在一段时间后关闭,请尝试以下操作:

var my_window;

function OpenWin()
{
    my_window=window.open("http://www.yahoo.com", "_blank", "resizable=yes, scrollbars=yes, titlebar=yes, width=1000, height=800, top=10, left=10");
    setTimeout("GoUrl('http://www.youtube.com')", 10000);

}
function GoUrl(Url)
{
    my_window.location=Url;
    setTimeout(function () { my_window.close(); }, 10000);
}

值得指出的是,将代码字符串传递给setTimeout被认为是不好的做法,因为它就像eval()一样。不要传入“GoURL('...')”,而是尝试使用回调函数,就像上面显示的setTimeout的其他用法一样。

的setTimeout:

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