Как заменить запрос файла javascript содержимым из другого файла в аддоне FF?

Я ищу некоторые рекомендации о том, как заменить запросы для определенного файла javascript другим файлом, который я упакую с дополнением Firefox.


person erikvold    schedule 26.06.2010    source источник
comment
Вы имеете в виду, что, например. какая-то HTML-страница попытается загрузить somesite.com/somefile.js с помощью тега <script>, но ваш аддон будет перехватывать этот запрос и вообще обслуживать другой файл (из плагина)?   -  person vladr    schedule 30.06.2010
comment
Я очень заинтересован в этом. Было бы здорово иметь возможность распространять части CSS/Javascript/Images веб-приложения, чтобы облегчить нагрузку на пользователей из-за плохого/медленного интернет-соединения (например, Африка, острова Тихого океана).   -  person Damo    schedule 01.07.2010
comment
@ Влад, ты прав, это специально для ga.js. Я хочу сделать аддон для отключения GA.   -  person erikvold    schedule 01.07.2010
comment
@ Дамо, я думал о том же, мог бы ускорить загрузку библиотеки и т. Д.   -  person erikvold    schedule 01.07.2010


Ответы (1)


См. Как я могу реализовать конвертер содержимого в Firefox для всех элементов страницы? (его область применения намного шире, чем то, что вам действительно нужно — читайте дальше) о том, как использовать registerFactory для регистрации суррогата обработчик протокола HTTP, который затем может создавать экземпляры каналов с альтернативными (например, типа file:///...) URI, когда newChannel вызывается с URI вашего конкретного сценария.

person vladr    schedule 30.06.2010
comment
Итак, замените newchannel в var newchannel = this.savedHttpHandler.newChannel(locationURI);, когда locationURI является uri ga.js? и заменить его на канал для локальной копии, включенной в расширение? - person erikvold; 01.07.2010
comment
Точно. Другим вариантом было бы переписать <javascript> узлов в DOM, но я думаю, что фабрика протоколов в этом случае проще и универсальнее. - person vladr; 01.07.2010
comment
Спасибо, эта информация помогает, я скоро попробую. - person erikvold; 06.07.2010