4

有一个 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>

page2.html的代码:

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

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

页面js/page2.js的代码:

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

一切正常,显示窗口“Function Test()”。但问题是我无法在 firebug js 调试器中访问函数 test() 的代码。它既不会出现在事件脚本中,也不会出现在 eval 中。

我该如何解决?

仅供参考:如果我不将函数放在单独的 js 文件中,而是将其放在 page2.html 中,它会正确显示在调试器中。

如果我在 test() 函数中输入“调试器”字样,Firebug 会停止,但该函数的源代码仍然无法访问。

版本:Firefox 3.0.10、Firebug 1.3.3

更新:与Making Firebug break inside dynamic loaded javascript的问题几乎相同,但还没有答案

4

3 回答 3

4

js/page2.js这是一个 hack,但我通过添加单词 debugger 两次让 firebug 在外部文件中停止。一次位于文件顶部,另一次位于函数顶部。

如果调试器字在任一位置仅出现一次,则 firebug 不会停止。

debugger;
function test() {
    debugger;
    alert('Function Test()');
}
于 2009-05-17T11:24:57.937 回答
0

尝试:

eval('debugger;');

它不漂亮,但它似乎工作。

于 2011-03-06T12:29:42.950 回答
0

将 js/page2.js 更改为:

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

您是否看到“已加载”消息?

于 2009-05-17T11:01:38.443 回答