динамически загружаемая функция js не появляется в отладчике Firebug js - PullRequest
4 голосов
/ 17 мая 2009

Существует page1.html (я открываю его в браузере):

<div id="content">
</div>
<script type="text/JavaScript">
    jQuery.ajax({
        type : "GET",
        url : 'page2.html',
        dataType : "html",
        success : function(response) {          
            jQuery('#content').append(response);

        }
    });
</script>

Код страницы2.html:

<script type="text/JavaScript" src="js/page2.js"></script>

<script type="text/JavaScript">
test();
</script>

Код страницы js / page2.js:

function test() {
    alert('Function Test()');
}

Все работает хорошо, отображается окно «Проверка функций ()». Но проблема в том, что я не могу добраться до кода функции test () в отладчике firebug js. Это не появляется ни в сценариях событий, ни в eval.

Как я могу это исправить?

FYI: Если я не помещаю функцию в отдельный файл js, но помещаю ее в page2.html, она Появляется в отладчике.

Если я добавлю слово «отладчик» в функцию test (), Firebug остановится, но исходный код функции по-прежнему недоступен.

Версии: Firefox 3.0.10, Firebug 1.3.3

Обновление: почти то же самое, что и вопрос Разрыв Firebug внутри динамически загружаемого JavaScript , но ответа пока нет

Ответы [ 3 ]

4 голосов
/ 17 мая 2009

Это хак, но я заставил firebug остановиться во внешнем файле js/page2.js, дважды добавив слово отладчик. Один раз вверху файла, а другой раз вверху функции.

Если слово отладчика встречается только один раз в любом месте, firebug не останавливается.

debugger;
function test() {
    debugger;
    alert('Function Test()');
}
0 голосов
/ 06 марта 2011

Попробуйте:

eval('debugger;');

Это не красиво, но, кажется, работает.

0 голосов
/ 17 мая 2009

Что происходит, когда вы меняете js / page2.js на:

function test() {
    alert('Function Test()');
}
alert('loaded');

Вы видите "загруженное" сообщение?

...