【问题标题】:Open tab with a custom referrer使用自定义引荐来源网址打开选项卡
【发布时间】:2011-12-26 22:52:18
【问题描述】:

如何在 Firefox 插件中打开带有自定义引荐来源的选项卡?

我猜是这样的:

tab.addProperty("referer", "http://mywebsite.com/");

【问题讨论】:

    标签: firefox tabs firefox-addon http-referer firefox-addon-sdk


    【解决方案1】:

    您不能将引荐来源网址“添加”到已打开的选项卡中,需要在打开选项卡时指定引荐来源网址。您为此使用gBrowser.addTab() method

    gBrowser.addTab("http://example.com/", {referrerURI: "http://referrer.com/"});
    

    gBrowser 是浏览器窗口中的全局变量。如果没有浏览器窗口,可以使用nsIWindowMediator.getMostRecentWindow()

    var windowMediator = Components.classes["@mozilla.org/appshell/window-mediator;1"]
                                   .getService(Components.interfaces.nsIWindowMediator);
    var window = windowMediator.getMostRecentWindow("navigator:browser");
    window.gBrowser.addTab(...);
    

    【讨论】:

    • 感谢您的示例,而不是标签库中的 esay 访问?
    • @MarcosEusebi:您使用的是附加 SDK 吗?你的问题没有这么说。无论如何,Add-on SDK 没有提供任何设置引用者的方法,因此您必须像我的第二个示例一样使用 chrome 权限和窗口中介。
    • @MarcosEusebi:使用附加 SDK 创建附加组件。请参阅 addons.mozilla.org/en-US/developers/docs/sdk/1.3/dev-guide/… 获取 chrome 权限,并在我的示例中将 Components.classes 替换为 CcComponents.interfaces 应替换为 Ci
    • 我明白,但谢谢你。我想是这样的:var {Cc, Ci} = require("chrome"); Cc.gBrowser.addTab("http://example.com/", {referrerURI: "http://referrer.com/"}); 也许我错了......
    【解决方案2】:

    你需要先创建一个URI:

    var ref = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService).newURI("http://referrer.com/",null,null); 
    gBrowser.addTab("http://example.com/", {referrerURI: ref});
    

    享受吧!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      • 2015-05-16
      • 1970-01-01
      相关资源
      最近更新 更多