有一个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()');
}
一切正常,显示“功能测试()”窗口。但问题是我无法在firebug js调试器中找到函数test()的代码。它不会出现在事件脚本或eval中。
我该如何解决?
供参考: 如果我不将该函数放在单独的js文件中,而是将其放在page2.html中,那么 在核心调试器中出现。
如果我在test()函数中放入“debugger”字,Firebug会停止,但函数的源代码仍然无法访问。
版本:Firefox 3.0.10,Firebug 1.3.3
更新:与问题Making Firebug break inside dynamically loaded javascript几乎相同,但尚无答案
答案 0 :(得分:4)
这是一个黑客攻击,但是我通过添加两次调试器一词让firebug停在外部文件js/page2.js
中。一旦位于文件顶部,另一次位于函数顶部。
如果调试器字在任何一个地方只有一次,则firebug不会停止。
debugger;
function test() {
debugger;
alert('Function Test()');
}
答案 1 :(得分:0)
将js / page2.js更改为:
时会发生什么function test() {
alert('Function Test()');
}
alert('loaded');
您是否看到“已加载”消息?
答案 2 :(得分:0)
尝试:
eval('debugger;');
它不漂亮,但似乎有用。