Firefox SDK 页面-mod 不工作
Firefox SDK page-mod not working
我安装了以下扩展程序:EPUBReader and Google Translator。后者是使用 Firefox SDK 构建的,最初有一个 page-mod include: ["*"]
,因此它仅适用于 http 和 https URLs。我 mod 将该行修改为 include: ["*","file://*","about:*"]
以便它也可以处理本地文件和 "about:" 链接。
我添加 "about:*"
的原因是因为我想要这个扩展到我用 EPUBReader 阅读的 epub 书籍上的文字。 EPUBReader 生成 URL 类似 "about:epubreader?id=5" 的内容。问题是,Google 当我双击单词时,翻译器仍然不会翻译任何内容。这很有趣,因为每当我尝试打开一个看起来像 "about:whatever" 的假 "about:" URL 时,它都会起作用。我的意思是,您可以双击错误页面中的任何单词,它就会翻译。
我在此处粘贴页面-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]);
});
}
});
帮助任何人??
您可以从
开始
include: /.*/,
将 page-mod
添加到每个 URL,并查看罪魁祸首是否在 include
中。如果这解决了问题,您可以进一步缩小范围。
它应该可以解决问题,因为 "*"
只匹配 http
、ftp
和 https
URLS。参见 https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/util_match-pattern#Wildcards。
但也许 inject.js
文件需要包含在可公开访问的 URL 中,然后将其发送给翻译人员...
我安装了以下扩展程序:EPUBReader and Google Translator。后者是使用 Firefox SDK 构建的,最初有一个 page-mod include: ["*"]
,因此它仅适用于 http 和 https URLs。我 mod 将该行修改为 include: ["*","file://*","about:*"]
以便它也可以处理本地文件和 "about:" 链接。
我添加 "about:*"
的原因是因为我想要这个扩展到我用 EPUBReader 阅读的 epub 书籍上的文字。 EPUBReader 生成 URL 类似 "about:epubreader?id=5" 的内容。问题是,Google 当我双击单词时,翻译器仍然不会翻译任何内容。这很有趣,因为每当我尝试打开一个看起来像 "about:whatever" 的假 "about:" URL 时,它都会起作用。我的意思是,您可以双击错误页面中的任何单词,它就会翻译。
我在此处粘贴页面-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]);
});
}
});
帮助任何人??
您可以从
开始include: /.*/,
将 page-mod
添加到每个 URL,并查看罪魁祸首是否在 include
中。如果这解决了问题,您可以进一步缩小范围。
它应该可以解决问题,因为 "*"
只匹配 http
、ftp
和 https
URLS。参见 https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/util_match-pattern#Wildcards。
但也许 inject.js
文件需要包含在可公开访问的 URL 中,然后将其发送给翻译人员...