В Google Chrome, как я приношу существующее всплывающее окно к передней стороне с помощью JavaScript из родительского окна?

Я хотел бы иметь кнопку на веб-странице со следующим поведением:

  • При первом щелчке откройте всплывающее окно.
  • При более поздних щелчках, если всплывающее окно все еще открыто, просто выявите его. В противном случае вновь откройтесь.

Ниже кода работает в Firefox (Mac & Windows), Safari (Mac & Windows) и IE8. (Я еще не протестировал IE6 или IE7.) Однако в Google Chrome (обе Mac & Windows) более поздним щелчкам не удается выявить существующее всплывающее окно, как желаемый.

Как я могу сделать эту работу в Chrome?


  



  

Фон: Я повторно спрашиваю этот вопрос специально для Google Chrome, поскольку я думаю я, мой код решает проблему, по крайней мере, для других современных браузеров и IE8. Если существует предпочтительный этикет для того, чтобы сделать так, сообщите мне.

10
задан Community 23 May 2017 в 12:30
поделиться

3 ответа

Вы не можете. Window.focus отключен в Chrome по соображениям безопасности, и вряд ли это изменится.

Вы должны закрыть и снова открыть соответствующее окно.

8
ответ дан 4 December 2019 в 02:25
поделиться

Почему бы просто не выполнить popopWindow.focus () после вызова window.open? Это не повредит сделать это и там, и это должно гарантировать, что ваше новое окно отображается поверх текущего.

0
ответ дан 4 December 2019 в 02:25
поделиться

Вам необходимо установить исходное окно для размытия, а для нового окна - для фокусировки.

var popup = {  //popup = object literal representing your popup
    execute = (function () {
        popup.win = window.open();
        popup.win.focus();
    }());
};
window.blur();
0
ответ дан 4 December 2019 в 02:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: