местоположение будет по-прежнему "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, когда всплывающее окно заблокировано.

К сожалению, он также возвращает те же значения, даже если всплывающее окно действительно открыто в течение неизвестного периода времени. После некоторого магического периода (несколько секунд в моем тестировании) информация о местоположении и размере возвращается как правильные значения. Другими словами, я все еще не приблизился к выяснению этого. Любая помощь будет оценена.

Ответы на вопрос(16)

Ваш ответ на вопрос