<html>
<head>
<script src="https://code.jquery.com/jquery-3.2.1.min.js" crossorigin="anonymous"></script>
<script>
var win;
$(document).on('click', '#okGoogle', function (event) {
event.preventDefault();
url = "http://www.google.com/";
if (!win) {
win = window.open(url, '_blank');
}
else {
win.focus();
}
});
</script>
</head>
<body>
<button id="okGoogle">Ok Google</button>
</body>
</html>
Этот код работает отлично. Но когда вновь открытое окно закрывается, код не открывает его снова. Какие-либо предложения?
Вам просто нужно проверить, закрыто ли окно, через его closed
свойство.
if (!win || win.closed) {
win = window.open(url, '_blank');
}
См. Рабочую скрипту здесь https://jsfiddle.net/c7q54ewt/
focus
вызов). Я могу убедиться, что это не работает в IE11 (возвращаемое значениеwindow.open
равноnull
поэтомуwin
всегда ложно), что не очень хорошо. У меня нет под рукой Edge. Я думаю, что это так близко, как вы собираетесь, не обновляя Google каждый раз, вместо того, чтобы просто фокусировать окно, не обновляя его. Надеемся, что в какой-то момент Edge поддержит возврат прокси-объекта окна и поддержитclosed
на нем объект.