местоположение будет по-прежнему "about: blank" даже для всплывающих окон, которые не заблокированы. Я тестировал на Chrome v28.0.1500.72
звестны методы 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, когда всплывающее окно заблокировано.
К сожалению, он также возвращает те же значения, даже если всплывающее окно действительно открыто в течение неизвестного периода времени. После некоторого магического периода (несколько секунд в моем тестировании) информация о местоположении и размере возвращается как правильные значения. Другими словами, я все еще не приблизился к выяснению этого. Любая помощь будет оценена.