【问题标题】:Firefox sidebar extension link loaded into a new browser tab. How-To?Firefox 侧边栏扩展链接已加载到新的浏览器选项卡中。如何?
【发布时间】:2009-02-04 08:42:15
【问题描述】:

我有一个 friefox 侧边栏扩展。如果通过单击工具栏图标打开它,我会用一个网页(我创作的)加载它。现在,如果用户单击网页上的链接(加载到侧边栏),我希望链接的网页在主窗口的新选项卡中打开。我在我的网页标记中尝试了这个:

<a target="_content" href="http://www.google.com">Google</a>

但链接会在具有焦点的选项卡中打开,而不是在新选项卡中。

请帮忙。

谢谢。

【问题讨论】:

    标签: javascript html firefox firefox-addon sidebar


    【解决方案1】:

    如果您改用 target="_blank",则 FF(版本 3)应为其打开一个新选项卡。尚未从侧边栏尝试过,但值得一试。

    【讨论】:

    • _blank 和 new/_new 是可互换的锚属性。 :)
    【解决方案2】:

    实际上,没有办法将网页(其链接位于加载到侧边栏扩展中的另一个网页中)加载到浏览器的新选项卡上。唯一的方法是使用javascript。这必须在特权条件下执行(意味着作为扩展的一部分),如下所示:

    gBrowser.addTab("http://www.google.com/");
    

    编辑:

    上述添加浏览器选项卡的技术在这种情况下不起作用。根据this article 在侧边栏中运行的代码无法访问主窗口。所以首先我在使用 gBrowser 之前可以访问浏览器窗口。以下是我使用并正常工作的网站上的代码:

    var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
    .getInterface(Components.interfaces.nsIWebNavigation)
    .QueryInterface(Components.interfaces.nsIDocShellTreeItem)
    .rootTreeItem
    .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
    .getInterface(Components.interfaces.nsIDOMWindow);
    

    访问浏览器窗口后,我通过 getBrowser 函数访问 gBrowser,如下所示:

    mainWindow.getBrowser().addTab("http://www.google.com/");
    

    在主窗口浏览器中打开一个新标签。

    【讨论】:

      【解决方案3】:
      <a href="http://www.google.com" target="new">Google</a>
      

      这更多地取决于正在使用的浏览器。 Firefox 和 Opera,我确信最新的 IE 将“新窗口”显示为新选项卡,除非用户偏好另有指定。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-23
        • 1970-01-01
        相关资源
        最近更新 更多