Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№116-03-2012 19:25:46

kirill09
Участник
 
Группа: Members
Зарегистрирован: 12-08-2011
Сообщений: 13
UA: Chrome 17.0

Отмена стандартной загрузки в браузере.

Добрый день.
Возник вопрос. Как можно отменить стандартную загрузку браузера.
Есть код который перехватывает http ответ

Выделить код

Код:

var httpResponseObserver =  
{  
  observe: function(subject, topic, data)   
  {  
          var httpChannel = subject.QueryInterface(Components.interfaces.nsIHttpChannel);
          if(httpChannel.originalURI.host == "tfile.ru"){
              alert(httpChannel.referrer);
              //alert(window.document.documentURI);
              alert(httpChannel.getResponseHeader("Content-Type"));
          }
            //alert(httpChannel.getResponseHeader("Content-Type"));
  }  
}; 
var observerService = Components.classes["@mozilla.org/observer-service;1"]
                                .getService(Components.interfaces.nsIObserverService);
observerService.addObserver(httpResponseObserver, "http-on-examine-response", false );

Хочу, чтоб при определенном «Content-Type» делались действия в моем экстеншене. А стандартные браузерные отменялись.
К примеру, когда тип Content-Type = application/binary чтоб вызывался мой загрузчик файлов а не стандартный браузера. С вызовом моих действий нет проблем, но вот как отменить действия браузера не нашел.
Конечно, можно перехватывать каждый запрос и делать предварительный запрос через xmlhttprequest смотреть Content-Type и принимать решение продолжать запрос или нет. Но думаю, пользователи экстеншена не буду рады тормазам в браузере.

Отсутствует

 

№217-03-2012 21:29:38

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 12.0

Re: Отмена стандартной загрузки в браузере.

Отсутствует

 

№321-03-2012 16:17:13

logik
Участник
 
Группа: Members
Зарегистрирован: 27-04-2010
Сообщений: 42
UA: Firefox 5.0

Re: Отмена стандартной загрузки в браузере.

Проверяй URI регеспом на расширение. их не так много будет для файлов загрузки. если совпадает с exe или msi и тп, то делай
subject.cancel(Components.results.NS_BINDING_ABORTED);

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]