Javascript window.focus()不';t从setInterval()开始工作
我正在努力使代码吹工作 然后,我想知道为什么window.focus()和window.blur()方法不起作用/只在输入按钮上起作用。当我从setInterval()调用时,它们不工作 例如,在下面的例子中,当我在HTML中按下按钮时,它会在第一次创建窗口,然后在第二次按下按钮时聚焦窗口 但是,我也设置了setInterval()使窗口成为焦点,但它不起作用。我可以在控制台上看到日志,因此setInterval函数工作正常,但win.focus()被忽略了Javascript window.focus()不';t从setInterval()开始工作,javascript,popup,focus,Javascript,Popup,Focus,我正在努力使代码吹工作 然后,我想知道为什么window.focus()和window.blur()方法不起作用/只在输入按钮上起作用。当我从setInterval()调用时,它们不工作 例如,在下面的例子中,当我在HTML中按下按钮时,它会在第一次创建窗口,然后在第二次按下按钮时聚焦窗口 但是,我也设置了setInterval()使窗口成为焦点,但它不起作用。我可以在控制台上看到日志,因此setInterval函数工作正常,但win.focus()被忽略了 <head> ...
<head>
...
<script>
var win;
function makePopup(){
if (!win || win.closed) {
win = window.open("","","width=200, height=200");
win.blur();
}else{
win.focus();
console.log("opened");
}
}
setInterval(function(){makePopup();},4000);
</script>
</head>
<body>
<input type="button" onclick="makePopup()"/>
</body>
...
瓦尔温;
函数makePopup(){
如果(!win | | win.closed){
win=窗口。打开(“,”,“宽度=200,高度=200”);
win.blur();
}否则{
win.focus();
控制台日志(“打开”);
}
}
setInterval(函数(){makePopup();},4000);
因此,问题是:
提前感谢。浏览器知道有人单击链接打开弹出窗口与脚本触发弹出窗口之间的区别。为了防止恶意活动,许多浏览器阻止脚本弹出窗口
通过指定与托管页面位于同一域上的URL,它应该可以工作。我不确定,这可能是一个安全问题,但万一您不知道,您也可以执行
setInterval(makePopup,4000)
,因为它只是您每次都要调用的函数。仅供参考,设置该间隔时,您不需要传入调用makePopup
的函数,您只需直接传入标识符makePopup
,如下所示:setInterval(makePopup,4000)
谢谢您的建议!是的,我知道这条路,但我只是习惯于这样写:)谢谢你的回复现在我从“localhost/”调用
win.open(“test.html”,“width=200,height=200”)
。它从脚本打开窗口,但不重新聚焦窗口一旦打开,然后我聚焦另一个窗口
我想在弹出窗口打开后的特定时间段内使其处于活动状态。在弹出窗口中放入一些脚本,将焦点设置为自身。mmm。。我将setInterval(function(){window.focus()},4000)放在弹出的html中,但仍然没有按预期工作。不过还是要感谢迪奥德乌斯,我刚刚开始使用这个网站,所以还没有足够的声誉来投票,但我会尽快投票。