Мне известны методы javascript, позволяющие определить, заблокировано ли всплывающее окно в других браузерах (как описано в ответе на этот вопрос ). Вот основной тест:
var newWin = window.open(url);
if(!newWin || newWin.closed || typeof newWin.closed=='undefined')
{
//POPUP BLOCKED
}
Но в Chrome это не работает. Раздел «POPUP BLOCKED» никогда не достигается, когда всплывающее окно заблокировано.
Конечно, тест в определенной степени работает, поскольку Chrome фактически не блокирует всплывающее окно, а открывает его в крошечном свернутом окне в правом нижнем углу, в котором перечислены «заблокированные» всплывающие окна.
Я бы хотел узнать, заблокировано ли всплывающее окно блокировщиком всплывающих окон Chrome. Я стараюсь избегать обнюхивания браузера в пользу обнаружения функций. Есть ли способ сделать это без обнюхивания браузера?
Изменить : теперь я попытался использовать newWin.outerHeight
,newWin.left
и других аналогичных свойств для достижения этой цели . Google Chrome возвращает все значения положения и высоты как 0, когда всплывающее окно заблокировано.
К сожалению, он также возвращает те же значения, даже если всплывающее окно действительно открыто в течение неизвестного периода времени. После некоторого волшебного периода (пара секунд в моем тестировании) информация о местоположении и размере возвращается в виде правильных значений. Другими словами, я еще не приблизился к тому, чтобы это понять. Любая помощь будет оценена.