2011-04-11 1 views
2

Я создаю расширение firefox и хотел бы изменить поведение объекта XMLHTTPRequest для каждой загруженной страницы.Переопределить XMLHTTPRequest в overlay.js в Mozilla Firefox Addon

Я нашел следующий код, который должен сделать трюк:

appcontent.addEventListener("load", function(event){ 
     var original_xhr = XMLHttpRequest; 
     XMLHttpRequest = function() { 
      original_xhr(); 
      alert ("I redefined this function"); 
     } 
     alert ("Page loading"); 
    } , true) 

Я добавил этот кусок кода в мой overlay.js файл. Событие загрузки работает правильно, так как появляется сообщение «Загрузка страницы». Но XMLHTTPRequest не перезаписывается.

Кто-нибудь знает, что случилось?

ответ

1

Мне удалось получить информацию по-другому. После перехвата httpchannel я использовал следующий код, чтобы узнать, возник ли запрос от запроса xhr:

try 
{ 
    var callbacks = httpChannel.notificationCallbacks; 
    if (callbacks) { 
     var xhrInterface = callbacks.getInterface(Components.interfaces.nsIXMLHttpRequest); 
     // XHR REQUEST 
    } 
} 
catch (exc) 
{ 
    if (exc.name == "NS_NOINTERFACE") { 
     // NO XHR REQUEST 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^