我正努力让代码打击......
然后,我想知道为什么window.focus()和window.blur()方法不起作用/只能从输入按钮工作。当我从setInterval()调用它们时它们不起作用。
例如,在下面的情况中,当我按下HTML中的按钮时,它会在第一次显示窗口,然后从第二次按下按钮时聚焦窗口。
但是,我也设置了setInterval()来使窗口焦点但它不起作用。我可以看到登录控制台,所以setInterval函数可以正常工作,但win.focus()会以某种方式被忽略。
<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>
所以问题是:
我正在使用Mac OSX在Chrome和Safari中进行测试。
如果你能给我一些建议,我真的很感激。
提前致谢。
答案 0 :(得分:2)
浏览器知道某人点击链接打开弹出窗口和脚本触发时的区别。为了防止恶意活动,许多浏览器会阻止脚本弹出窗口。
通过指定与托管页面位于同一域中的URL,它应该可以正常工作。