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()');
}

すべてがうまく機能し、ウィンドウ「FunctionTest()」が表示されます。しかし、問題は、firebug jsデバッガーの関数test()のコードに到達できないことです。イベントスクリプトにも評価にも表示されません。

どうすれば修正できますか?

参考:関数を別のjsファイルに配置せずに、page2.htmlに配置すると、デバッガーに正しく表示されます。

test()関数に「debugger」という単語を入れると、Firebugは停止しますが、関数のソースコードに到達できません。

バージョン:Firefox 3.0.10、Firebug 1.3.3

更新:動的にロードされたjavascript内でFirebugを壊すという質問とほぼ同じですが、まだ答えはありません

4

3 に答える 3

4

js/page2.jsハックですが、debuggerという単語を2回追加して、外部ファイルでfirebugを停止させました。ファイルの先頭に 1 回、関数の先頭にもう 1 回。

デバッガーの単語がいずれかの場所に 1 回しかない場合、firebug は停止しません。

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

js/page2.js を次のように変更するとどうなりますか。

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

「ロード済み」メッセージが表示されますか?

于 2009-05-17T11:01:38.443 に答える
0

試す:

eval('debugger;');

きれいではありませんが、うまくいくようです。

于 2011-03-06T12:29:42.950 に答える