Firefox侧边栏扩展链接加载到新的浏览器选项卡中。如何?

时间:2009-02-04 08:42:15

标签: javascript html firefox firefox-addon sidebar

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

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

但链接会在具有焦点但不在新标签中的标签中打开。

请帮忙。

感谢。

3 个答案:

答案 0 :(得分:2)

如果使用target =“_ blank”,FF(版本3)应该为它打开一个新选项卡。没有尝试过侧边栏,但是值得一试。

答案 1 :(得分:1)

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

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

编辑:

在这种情况下,添加浏览器选项卡的上述技术不起作用。根据{{​​3}}边栏中运行的代码无法访问主窗口。所以首先我在使用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/");

在主窗口浏览器中打开一个新选项卡。

答案 2 :(得分:0)

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

这更依赖于正在使用的浏览器。 Firefox和Opera,我相信最新的IE浏览器会将“新窗口”显示为新选项卡,除非用户偏好另有说明。