打开一个网址,在目前的标签/窗口从Firefox扩展
-
10-07-2019 - |
题
我创造有Firefox扩展...什么会是javascript打开一个网址,在目前选择一个菜单项?
例如在我的叠加。太文件,我有如下一行:
<menuitem label="Visit homepage" oncommand="window.location='http://www.somepage.com'"/>
但在火狐,当我点的菜单上的项目,它打开了URL但它砸了整个布局的浏览器。
什么是正确的方式做到这一点?
解决方案
浏览后,我发现我必须用以下代码替换上面的代码:
<menuitem label="Visit homepage" oncommand="content.wrappedJSObject.location='http://www.somepage.com'"/>
其他提示
从一个菜单项可以使用 openUILinkIn.它的工作,如:
openUILinkIn(url, where);
哪里可以是:选项,目前,窗口(和其他一些很少使用的选项)
如果你想要不同的行为,基于什么样的键盘剂的用户是紧迫的,可以使用的另一个功能 whereToOpenLink, 返回tab/current/窗根据用户喜好和修改。
openUILinkIn(url, whereToOpenLink(event));
因此,我使用:
<menuitem label="Visit homepage"
oncommand="openUILinkIn('http://example.com/', whereToOpenLink(event))"/>
如果你不是在上下文的菜单项的你可能想看看另一个内在的事,增加了联系和开Href一标签:
<label value="google" class="text-link" href="http://google.com/" />
<menuitem label="Visit Report Site" oncommand="var win = Components.classes['@mozilla.org/appshell/window-mediator;1']
.getService(Components.interfaces.nsIWindowMediator)
.getMostRecentWindow('navigator:browser'); win.openUILinkIn('http://www.google.com', 'tab');"/>
在新标签页中打开网址。
在您的命令
上调用此JS函数//open a url current window:
function openUrl(url) {
content.wrappedJSObject.location = url;
newTabBrowser = gBrowser.selectedBrowser;
newTabBrowser.addEventListener("load", highlight, true);
}
//new tab
function openUrlNewTab(url) {
var win = Components.classes['@mozilla.org/appshell/window-mediator;1']
.getService(Components.interfaces.nsIWindowMediator)
.getMostRecentWindow('navigator:browser');
win.gBrowser.selectedTab = win.gBrowser.addTab(url);
}
不隶属于 StackOverflow