从 Firefox 扩展打开当前选项卡/窗口中的 URL

发布于 2024-07-08 15:39:36 字数 297 浏览 5 评论 0原文

我正在创建一个 Firefox 扩展...从菜单项打开当前选项卡中的 URL 的 javascript 是什么?

例如,在我的overlay.xul 文件中,我有以下行:

<menuitem label="Visit homepage" oncommand="window.location='http://www.somepage.com'"/>

但在firefox 中,当我单击菜单项时,它会打开URL,但会破坏浏览器的整个布局。

这样做的正确方法是什么?

I am creating a Firefox Extension...what would be the javascript to open a URL in the current tab from a menuitem?

e.g. in my overlay.xul file i have the following line:

<menuitem label="Visit homepage" oncommand="window.location='http://www.somepage.com'"/>

but in firefox, when i click on the menu item, it opens the URL but it screws up the entire layout of the browser.

What's the correct way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

橘香 2024-07-15 15:39:36

浏览了一下后,我发现我必须将上面的代码替换为:

<menuitem label="Visit homepage" oncommand="content.wrappedJSObject.location='http://www.somepage.com'"/>

After browsing around, I found that I had to replace the above code with this:

<menuitem label="Visit homepage" oncommand="content.wrappedJSObject.location='http://www.somepage.com'"/>
梦开始←不甜 2024-07-15 15:39:36

从菜单项中,您可以使用openUILinkIn。 它的工作原理如下:

openUILinkIn(url, where);

where can be: tab, current, window (以及其他一些很少使用的选项)

如果您想根据用户按下的键盘修饰符进行不同的行为,您可以使用另一个函数 whereToOpenLink,它根据用户首选项和修饰符返回选项卡/当前/窗口。

openUILinkIn(url, whereToOpenLink(event));

因此我使用:

<menuitem label="Visit homepage" 
          oncommand="openUILinkIn('http://example.com/', whereToOpenLink(event))"/>

如果您不在菜单项的上下文中,您可能想查看另一个内置 XBL,它为标签添加链接和打开 HREF:

<label value="google" class="text-link" href="http://google.com/" />

From a menuitem you can use openUILinkIn. It works like:

openUILinkIn(url, where);

where can be: tab, current, window (and a few other seldom used options)

If you want to behave differently based on what keyboard modifiers a user is pressing, you can use another function whereToOpenLink, which returns tab/current/window based on the users preferences and modifiers.

openUILinkIn(url, whereToOpenLink(event));

Thus I use:

<menuitem label="Visit homepage" 
          oncommand="openUILinkIn('http://example.com/', whereToOpenLink(event))"/>

If you aren't in the context of a menuitem you might want to check out another built-in XBL that adds linking and opening HREFs for a label:

<label value="google" class="text-link" href="http://google.com/" />
中二柚 2024-07-15 15:39:36
<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');"/>

在新选项卡中打开 URL。

<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');"/>

Open URL in new tab.

土豪我们做朋友吧 2024-07-15 15:39:36

在您的命令上调用此 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);
}

Call this JS functions on your commmand

//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);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文