quarks
quarks

Reputation: 35276

Identify which Javascript executed a call using Firebug or Google Chome

How to know which Javascript (.js) executed a GET or Ajax call using Firebug or Google Chrome Plugin?

For example, a request for a image or html file executed by a Javascript, how to know which Javascript on the page executed that

Upvotes: 1

Views: 148

Answers (2)

Oleg
Oleg

Reputation: 24988

Update:

I have to (shamefully) admit that the original below was wrong. Due to the nature of the js execution flow this works at the first execution time:

console.log($("script").last().attr("class")); //or whatever

That, however, is not good enough, as illustrated by a call on a timeout. We need to keep the reference to the script element, this can be achieved by wrapping script contents into a closure and creating a variable to store the jQuery reference:

(function(){
    var $scriptElement = $("script").last();
    console.log($scriptElement.attr("class")); //or whatever
})();

Now, I have to disclaim that with the markup as above it is unlikely to be practical unless you come up with a better way to store the script element reference... this pretty much became a rather bad example of what could be done but really shouldn't :(

Unless you have to get the reference in-code, you would be much better off looking at the console output, it actually tells you where the output originated from, with the line# and everything:

enter image description here

Original:

Not sure how applicable this would be to external js (script tag with a src), but for inline scripts you could do something like this w/jQuery:

$(this).closest("script");//gets you reference to the script element

I'm assuming it would just a matter of getting its src attribute! Let us know if it works.

console.log($(this).closest("script").attr("src"));

Upvotes: 1

sissonb
sissonb

Reputation: 3780

In chrome you can break on any xhr request. This will only set breakpoints for AJAX calls though.

XHR Breakpoint

Upvotes: 1

Related Questions