views:

576

answers:

3

Hi.

There is a page1.html (I open it in browser):

<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>

Code of the page2.html:

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

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

Code of the page js/page2.js:

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

Everything works well, the window "Function Test()" is shown. But the problem is that I can't reach the code of function test() in firebug js debugger. It doesn't appear in event scripts nor in eval.

How can I fix that ?

FYI: If I don't put the function in separate js file, but place it in page2.html, it appears in debugger corectly.

If I put "debugger" word in test() function, the firebug stops, but the source code of the function is still unreachable.

Versions: Firefox 3.0.10, firebug 1.3.3

Thanks

Update: pretty much the same as this question http://stackoverflow.com/questions/858779/making-firebug-break-inside-dynamically-loaded-javascript , but there is no answer yet

A: 

What happens when you change js/page2.js to:

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

Do you see the "loaded" message?

digitala
Yes, of course, Script execution works correctly, but it is not "loaded" in firebug properly
braz
+1  A: 

It's a hack, but I got firebug to stop in the external file js/page2.js by adding the word debugger twice. Once at the top of the file and another time at the top of the function.

If the debugger word is there only once in either place, firebug does not stop.

debugger;
function test() {
    debugger;
    alert('Function Test()');
}
Jose Basilio
Nice hack. I tried that and it works. +1
ichiban
Yes, it indeed stops on "debugger" if I place it anywhere in js/page2.js (I mentioned it in a message), but still I can't get the source code (watch local wars, step by step moving etc)
braz
By doing exactly what I mentioned in my post, having the debugger word twice, I am able to step through the source and watch local vars.
Jose Basilio
Thanks, it works indeed. However for more complex functions (like in my real case) it still doesn't work properly ...
braz
So, we can prove that it works in the simple scenario. Please provide a little more information on your complex case, and what you are trying to accomplish. Perhaps, there's a different way of approaching a solution.
Jose Basilio