Расширение Firefox не работает с URL-адресами, отличными от http:// https://
Я установил два Расширения Firefox для перевода слов при двойном щелчке по ним: Google Translator и Wictionary и Google Translate.
Оба предлагают вам возможность переводить слова, просто дважды щелкнув по ним. Но разница в том, что Wictionary и Google Translate просто работают везде, где я дважды щелкаю. Он работает с локальными файлами (file:///...), расширением EPUBReader, которое открывает файлы EPUB внутри Firefox с URL-адресом (about:epubreader? Id=5) и т. Д. Так как я предпочитаю Google Translator, я хочу использовать это так же, как я могу использовать Wictionary и Google Translate, но он не работает ни с одним URL, кроме http:// https:// .
Я пытался сравнить их исходные коды и несколько раз искал, чтобы найти и отредактировать эту функцию в Google Translator, но ничего не смог сделать.
Помочь кому нибудь?? Спасибо
Какой-то каталог от Google Translator
- Ресурсы:
- igtranslator:
- Lib:
- firefox.js
- common.js
- config.js
- данные:
- (много PNG, HTML, CSS)
- inject.js
- options.js
- popup.js
- Lib:
- igtranslator:
- bootstrap.js
1 ответ
Вот фрагмент кода из firefox.js, который отвечает за прослушивание протоколов URL:
var workers = [], content_script_arr = [];
pageMod.PageMod({ /* page */
include: ["*"],
contentScriptFile: [data.url("content_script/inject.js")],
contentScriptWhen: "start",
contentStyleFile : data.url("content_script/inject.css"),
onAttach: function(worker) {
array.add(workers, worker);
worker.on('pageshow', function() { array.add(workers, this); });
worker.on('pagehide', function() { array.remove(workers, this); });
worker.on('detach', function() { array.remove(workers, this); });
content_script_arr.forEach(function (arr) {
worker.port.on(arr[0], arr[1]);
});
}
});
Изменение include:
линия к
include: ["*","file://*"],
сделает трюк для локальных файлов.