我有一个 friefox 侧边栏扩展。如果通过单击工具栏图标打开它,我会用一个网页(我创作的)加载它。现在,如果用户单击网页上的链接(加载到侧边栏),我希望链接的网页在主窗口的新选项卡中打开。我在我的网页标记中尝试了这个:
<a target="_content" href="http://www.google.com">Google</a>
但是该链接在具有焦点的选项卡中打开,而不是在新选项卡中打开。
请帮忙。
谢谢。
我有一个 friefox 侧边栏扩展。如果通过单击工具栏图标打开它,我会用一个网页(我创作的)加载它。现在,如果用户单击网页上的链接(加载到侧边栏),我希望链接的网页在主窗口的新选项卡中打开。我在我的网页标记中尝试了这个:
<a target="_content" href="http://www.google.com">Google</a>
但是该链接在具有焦点的选项卡中打开,而不是在新选项卡中打开。
请帮忙。
谢谢。
如果您改用 target="_blank",则 FF(版本 3)应为其打开一个新选项卡。还没有从侧边栏尝试过,但值得一试。
实际上,没有办法将网页(其链接位于加载到侧边栏扩展中的另一个网页中)加载到浏览器的新选项卡上。唯一的方法是使用javascript。这必须在特权条件下执行(意味着作为扩展的一部分),如下所示:
gBrowser.addTab("http://www.google.com/");
编辑:
上述添加浏览器选项卡的技术在这种情况下不起作用。根据这篇文章,在侧边栏中运行的代码无法访问主窗口。所以首先我在使用 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/");
在主窗口浏览器中打开一个新选项卡。
<a href="http://www.google.com" target="new">Google</a>
这更多地取决于正在使用的浏览器。Firefox 和 Opera,我敢肯定最新的 IE 将“新窗口”显示为新选项卡,除非用户偏好另有规定。