【问题标题】:Limit a firefox extension to a specific domain将 Firefox 扩展限制为特定域
【发布时间】:2010-09-21 18:11:59
【问题描述】:

我想写一个 Firefox 扩展。此扩展不是通用扩展,而是专门用于需要突出显示特定 html 组件的域。

我该怎么做?我只想在用户浏览特定域时加载 js。

我当前的overaly.js 基本上是空的(由扩展向导生成):

var myextension = {
  onLoad: function() {
    // initialization code
    this.initialized = true;
    this.strings = document.getElementById("myextension-strings");
  },

  onMenuItemCommand: function(e) {
    var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
                                  .getService(Components.interfaces.nsIPromptService);
    promptService.alert(window, this.strings.getString("helloMessageTitle"),
                                this.strings.getString("helloMessage"));
  },

  onToolbarButtonCommand: function(e) {
    // just reuse the function above.  you can change this, obviously!
    myextension.onMenuItemCommand(e);
  }
};

window.addEventListener("load", myextension.onLoad, false);

而我的ff-overlay.xul 是:

myextension.onFirefoxLoad = function(event) {
  document.getElementById("contentAreaContextMenu")
          .addEventListener("popupshowing", function (e){ myextension.showFirefoxContextMenu(e); }, false);
};

myextension.showFirefoxContextMenu = function(event) {
  // show or hide the menuitem based on what the context menu is on
  document.getElementById("context-myextension").hidden = gContextMenu.onImage;
};

window.addEventListener("load", myextension.onFirefoxLoad, false);

我正在考虑去尼安德特人并在myextension.onFirefoxLoad 内部进行检查,以查看当前页面是否是我想要的页面,但这需要用户单击上下文菜单上的正确项目。

【问题讨论】:

    标签: firefox firefox-addon


    【解决方案1】:

    我并没有完全遵循你所拥有的,因为它们看起来都像 JS 文件,而不是 XUL 文件。但是您可能想要做的是listen for the load event coming from the web pages that are loaded。然后,在您的事件加载器中,只需查看加载的每个页面,看看它是否来自您想要的特定域。

    了解如何在 Firefox 插件中做某事的一个很好的(虽然并不总是像听起来那么简单)的方法是找到另一个做类似事情的插件。 DOM InspectorInspect Context 是你的朋友!在这种情况下,第一个想到的此类插件是 WikiTrust,因此您可以尝试查看该插件,看看它是否能给您带来任何启发。

    【讨论】:

    • 我要找的是onPageLoad。我有第二个与此相关的问题。既然我不需要编辑浏览器 UI,我还需要overlay.xul 吗?此时是否应该是默认的overlay.xul,只有script标签才能调用扩展js文件?
    • 是的,我想是的。只需包含您的脚本标签,也许还有一个字符串包来外部化您的字符串。然后,如果您以后决定添加其他内容,您可以随时添加。
    猜你喜欢
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多