我已安装以下扩展程序:EPUBReader和Google Translator。后者使用Firefox SDK构建,最初只有page-mod include: ["*"]
,因此它仅适用于http和https URL。我将该行修改为include: ["*","file://*","about:*"]
,以便它也可以使用本地文件和“about:”链接。
我添加"about:*"
的原因是因为我希望这个扩展到我用EPUBReader阅读的epub书籍上的文字。 EPUBReader产生的URL类似于“about:epubreader?id = 5”。问题是,当我双击单词时,Google Translator仍然不会翻译任何内容。这很有趣,因为无论何时我尝试打开一个虚假的“about:”URL,看起来像“about:whatever”,它都有效。我的意思是,您可以双击错误页面中的任何单词并进行翻译。
我在这里粘贴了page-mod代码片段:
var workers = [], content_script_arr = [];
pageMod.PageMod({ /* page */
include: ["*","file://*","about:*"],
contentScriptFile: [data.url("content_script/inject.js")],
contentScriptWhen: "ready",
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]);
});
}
});
帮助任何人??
答案 0 :(得分:0)
你可以从
开始include: /.*/,
将page-mod
添加到每个网址,并查看罪魁祸首是否在include
中。如果这解决了问题,你可以进一步缩小范围。
它应该可以解决问题,因为"*"
只匹配http
,ftp
和https
网址。请参阅https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/util_match-pattern#Wildcards。
但也许inject.js
文件需要包含在可公开访问的网址中,然后才能发送给翻译人员......