Как я могу поймать неизвестную причину всплывающего окна Javascript? - PullRequest
1 голос
/ 26 декабря 2009

Я отлаживаю чужую веб-страницу. На нем есть ссылка, которая пытается открыть себя во всплывающем окне, причина этого неясна - в HTML нет ничего очевидного (onclick = foo), вызывающего это.

Отключение JavaScript означает, что ссылка открывается нормально. У меня есть Firefox / Firebug / Dom Inspector и я хочу перехватить любое событие JavaScript, которое приводит к всплывающему окну. Так как я не могу найти код, я застрял.

Может ли Firebug создать своего рода глобальную точку останова для перехвата всего кода? Есть ли какой-то другой способ подключиться к этому поведению и проверить его?

Страница, о которой идет речь, - http://hijinxmusic.co.uk/, а ссылка на проблему - «Зеленая политика» внизу.

Спасибо за ваше время.

Ответы [ 3 ]

3 голосов
/ 26 декабря 2009

Зеленый документ политики открывает всплывающее окно при загрузке:

<body onload="MM_openBrWindow('green%20policy.htm','green','width=900,height=600')">

Это внутри green policy.htm

0 голосов
/ 27 декабря 2009

Большая проблема в том, что страница, которую вы пытаетесь открыть в новом окне, - это то же самое окно, на которое уже смотрит пользователь, что не имеет никакого смысла. Более того, если бы блокировщик всплывающих окон не блокировал создание окна, у вас был бы бесконечный цикл всплывающих окон (загрузить 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.
}
0 голосов
/ 26 декабря 2009

Просто чтобы добавить к ответ Дэвида , функция, которая выполняется при загрузке тела на странице в http://hijinxmusic.co.uk/green%20policy.htm, по существу вызывает window.open()

function MM_openBrWindow(theURL,winName,features) { //v2.0
    window.open(theURL,winName,features);
}
...