Javascript:如何打开页面然后等待几秒钟在同一个窗口中打开另一个页面

时间:2012-10-30 05:19:10

标签: javascript

我试图在窗口中打开一个网址,然后等待几秒钟,然后在同一个窗口中打开另一个网址。但脚本不起作用。运行时,它会给出一个空白窗口。我是Javascript的新手。有人可以帮助我吗?

我也想在谷歌浏览器中运行它。

脚本如下:

my_window=window.open("","mywindow");
my_window.location="http://www.yahoo.com";
sleep(10000);
my_window.location="http://www.youtube.com";
sleep(10000);
my_window.close();

function sleep(delay)
{
    var start = new Date().getTime();
    while (new Date().getTime() < start + delay);
}

4 个答案:

答案 0 :(得分:1)

你可以尝试一下:

<script type="text/javascript">
function def()
{
my_window.location="http://www.yahoo.com";
setTimeout("abc()", 3000);
}

function abc()
{
alert("Delayed 3 seconds");
my_window.location="http://www.youtube.com";
}
</script>

答案 1 :(得分:0)

<强>已更新

我编写了以下HTML,它可以很好地展示您帖子中的内容:

<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>

答案 2 :(得分:0)

经过测试,但这个可以使用弹出窗口阻止程序

<!DOCTYPE html>
<html>
    <head>
        <script>
        function open_win() 
        {
            setTimeout("go('http://www.yahoo.com')", 5000);

            setTimeout("go('http://www.youtube.com')", 10000);

        }

        function go(url){
            window.open(url);
        }
    </script>
</head>

<body>
<form>
    <input type="button" value="Open Win" onclick="open_win()">
</form>
</body>
</html>

答案 3 :(得分:0)

通常,在javascript中使用阻塞循环是不可取的。 在您的情况下,您可能希望使用类似setTimeout或setInterval的内容。 这段代码应该有效:

var win = window.open("http://foo.com");
setTimeout(function(){
    win.location = "http://bar.com";
    setTimeout(function(){
        win.close();
    }, 10000);
}, 10000);