javascript - 将 setTimeout 与 window.open() 一起使用后,将 setTimeout 与 window.close() 一起使用不起作用

标签 javascript settimeout

我有两个接一个的setTimeout。一个在窗口中打开网页,另一个在预定时间后关闭窗口。但是,使用setTimeout打开网页后,接下来关闭窗口的setTimeout就不起作用了。 setTimeout 与 windows.close 本身工作正常。

我试图打开一个带有消息的窗口;然后在预定时间后在窗口中打开网站,然后在几秒钟后关闭窗口。这是我执行此操作的函数:

function showNews() {
    news = window.open("", "NewsWindow", "width=900, height=700");
    news.document.write("<p>The 'NewsWindow' will only appearing for 3 seconds.</p>");
    tmot = setTimeout(function(){news.window.open('http://www.yahoo.com','_self')}, 2000);
    tmot = setTimeout(function(){news.window.close()}, 5000);
}

我尝试在 Chrome 和 IE 上运行,两个浏览器只会执行其中一个 setTimeout 而不会执行另一个。任何建议和帮助将不胜感激!

最佳答案

您最好使用具有相同参数的父窗口重新打开它:

function showNews() {
    news = window.open("", "NewsWindow", "width=900, height=700");
    news.document.write("<p>The 'NewsWindow' will only appearing for 3 seconds.</p>");
    tmot = setTimeout(function(){window.open('http://www.yahoo.com', "NewsWindow")},2000);
    tmot = setTimeout(function(){news.close()}, 5000);
}

不要在 IE 上尝试,我没有。

关于javascript - 将 setTimeout 与 window.open() 一起使用后,将 setTimeout 与 window.close() 一起使用不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22648067/

相关文章:

javascript - 什么是 MongoDB 的严格模式,使用它是个好主意吗?

javascript - jQuery 悬停功能不适用于 ng-repeat Angular 对象

javascript - 当在函数内部调用并使用从父级传递的参数时,为什么 setTimeout 函数记录未定义?

javascript - 想要控制我的动画的 FPS 是继续使用 setTimeout 而不是 requestAnimationFrame 的充分理由吗?

javascript - 使用 jQuery.queue 代替 setTimeout

javascript - HTML : Page load every 5 secs and display countdown like 5, 4,3,2,1 然后重新加载页面

javascript - 如何从 HTML <td> 组件的内部文本中(仅)删除星号?

javascript - Visual Studio Code Intellisense typescript 不工作

javascript - 如何使用 JavaScript 更新 cookie 过期时间?

javascript - $.mobile.showPageLoadingMsg() 不起作用