setTimeout到window.open并关闭,在同一个窗口上?

我在一段时间后打开窗户时遇到一些困难,然后在一段时间后自动关闭它们。 我不知道为什么,但似乎当我尝试在window.open和window.close上使用setTimeout时,它们会以某种方式干扰。 这是我的代码atm:

function topLeft() { var myWindow = "image.png", "ONE", "width=300,height=310,top=100,left=100,menubar=no,toolbar=no,titlebar=no,statusbar=no"; setTimeout(function() { myWindow.window.open() }, 5000); setTimeout(function() { myWindow.close() }, 10000); function start() { openClose(); } window.onload = start; 

谢谢你的期待

你的代码不对。

myWindow是一个字符串变量。

你试图调用myWindow.window.open() 。 这会生成脚本错误,因为myWindow (一个字符串变量)没有window属性。

也许你的意思是:

 var myWindowURL = "image.png", myWindowName = "ONE"; var myWindowProperties = "width=300,height=310,top=100,left=100,menubar=no,toolbar=no,titlebar=no,statusbar=no"; var openWindow; setTimeout(function() { openWindow = window.open(myWindowURL, myWindowName, myWindowProperties); }, 5000); setTimeout(function() { openWindow.close() }, 10000); 

大多数流行浏览器中的弹出窗口阻止程序只允许打开一个新窗口,因为代码是通过直接用户操作(如点击)运行而打开的。

因为setTimeout()在将来某个时间发生,所以不被认为是用户操作的直接结果,因此弹出窗口阻止程序可能会阻止尝试从setTimeout()打开窗口。

当然,您可以在自己的浏览器中禁用弹出窗口阻止程序,但这只是您可以在自己的浏览器中执行的操作。 你不能通过Javascript禁用弹出窗口阻止(因为这会破坏目的)。