我创造有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);
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top