Я изо всех сил, чтобы сделать код удара работу ...window.focus() не работает с setInterval()
Тогда, я задаюсь вопросом, почему 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>
Так что проблемы:
- window.blur() не работает.
- window.focus() работает только при вызове makePopup() из кнопки HTML и не работает с setInterval().
Я тестирую в Chrome и Safari с Mac OSX.
Если бы вы могли дать мне какое-либо предложение, я действительно ценю его.
Заранее спасибо.
Я не уверен, это может быть вещь безопасности, но на всякий случай, когда вы этого не знали, вы также можете сделать 'setInterval (makePopup, 4000);', поскольку это просто функция, которую вы хотите вызвать каждый время. – pimvdb
fyi, при настройке этого интервала вам не нужно передавать функцию, вызывающую 'makePopup', вы можете просто передать идентификатор' makePopup' следующим образом: 'setInterval (makePopup, 4000)' – Shad
Спасибо за советы ! Да, я знаю путь, но просто использовал для написания этого :) – leccmo