Большая проблема в том, что страница, которую вы пытаетесь открыть в новом окне, - это то же самое окно, на которое уже смотрит пользователь, что не имеет никакого смысла. Более того, если бы блокировщик всплывающих окон не блокировал создание окна, у вас был бы бесконечный цикл всплывающих окон (загрузить green policy.html
, открыть новый green policy.html
, загрузить green policy.html
и т. Д.). Где вы хотели, чтобы всплывающее окно произошло?
Кроме того, чтобы добавить к Russ Cam's ответ , вы можете определить, когда всплывающее окно не открывается, проверив возвращаемое значение window.open
. Я успешно использовал это в Firefox, IE, Opera и Safari (не нужно было тестировать в Chrome). Используя предоставленную функцию, я работаю с заблокированными всплывающими окнами:
function MM_openBrWindow(theURL,winName,features) { //v2.0
if ( !window.open(theURL, winName, features) ) {
// Window failed to open:
// show a HTML dialog/popover that prompts the user to allow
// popups from this site, along with a `cancel` and `try again`
// button. The `try again` button will attempt to open the
// window again with the provided parameters
dialog.popupBlockedNotice.open(arguments);
}
// Window opened successfully.
}