【问题标题】:Firefox extension not working with URLs other than http:// https://Firefox 扩展不适用于 http:// https:// 以外的 URL
【发布时间】:2015-02-25 13:00:22
【问题描述】:

我已经安装了两个 Firefox 扩展来在我双击它们时翻译它们:Google TranslatorWictionary and Google Translate

两者都为您提供了通过双击单词来翻译单词的可能性。但不同的是,Wictionary 和谷歌翻译只适用于我双击的任何地方。它适用于本地文件 (file:///...) ,EPUBReader 扩展,它在 Firefox 中打开 EPUB 文件,其 URL 类似于 (about:epubreader?id=5) 等。因为我更喜欢谷歌翻译,所以我想使用它与我可以使用 Wictionary 和 Google 翻译的方式相同,但它不适用于 http:// https:// 以外的任何 URL。

我曾尝试比较他们的源代码,并多次搜索以在谷歌翻译中找到并编辑此功能,但无能为力。

帮助任何人?? 谢谢

来自谷歌翻译的一些目录

  • 资源:
    • ig 转换器:
      • 库:
        • firefox.js
        • common.js
        • config.js
      • 数据:
        • (许多 png、html、css)
        • inject.js
        • options.js
        • popup.js
  • bootstrap.js

【问题讨论】:

  • 他们的源码是用火狐的sdk吗?
  • @winhowes 很抱歉我很笨,但我对这件事很陌生.. 在做了一些研究之后,我想我在阅读这篇 developer.mozilla.org/en-US/Add-ons/SDK/Guides/SDK_vs_XUL 文章后理解了你的意思。 Wictionary 插件有许多 XUL 文件和典型的 XUL 结构,包括皮肤、内容和语言环境文件夹。安装后也需要重启。谷歌翻译只有一个 XUL 文件,不需要重启。它还有一个 addon-sdk 文件夹,虽然是空的。字典没有这样的文件夹。
  • 知道了,好吧,如果没有通过他们的代码,我会在他们的代码中寻找正则表达式来指示他们正在侦听的 url 协议
  • 你能告诉我在哪里寻找吗?我已经发布了一些重要的目录文件
  • 是的,它应该在 lib 文件中。可能在 firefox.js 中,也可能在一些名为 PageMod 的对象中

标签: javascript firefox firefox-addon xpi


【解决方案1】:

这里是 firefox.js 中负责监听 URL 协议的代码 sn-p:

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://*"],

可以处理本地文件。

【讨论】:

    猜你喜欢
    • 2016-04-15
    • 2022-11-30
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 2015-01-05
    相关资源
    最近更新 更多