Я считаю, что расширение FF имеет больше возможностей, чем код, запущенный в контексте страницы, и именно поэтому он может обнаруживать запросы. Насколько я знаю, нет собственного способа получить экземпляр объекта XMLHttpRequest, если вы не указали на него ссылку.
Однако JavaScript является гибким языком, и вы можете легко создать перехватчик, который будет отслеживать все открытые вызовы.
Примечание: Предпочтительно, если возможно, использовать методы плагина.
E.g.
XMLHttpRequest.prototype.send = (function (nativeSendFn) {
return function() {
var sendHandler = this.constructor.onSend;
nativeSendFn.apply(this, arguments);
sendHandler && sendHandler(this, arguments);
};
})(XMLHttpRequest.prototype.send);
XMLHttpRequest.onSend = function (xhr, args) {
console.log('request ', xhr);
console.log('arguments ', args);
};
var req = new XMLHttpRequest();
req.open('GET', 'http://www.stackoverflow.com', true);
req.send();
Я так не считаю. Скорее всего, вам лучше искать способ подключиться к плагину и сделать доступным xhr таким образом. Или, если вы знаете, что он использует jQuery, вы можете обезвредить метод $ .ajax. –
@KevinB Вы также можете просто слушать все вызовы 'open'. Очевидно, что лучше всего подключиться к самому плагину. – plalx
@KevinB: Я не знаю, что на самом деле, не вникая в его код – vol7ron