首先是简单的:对于鼠标中键单击:在“选项卡”选项卡上的“工具”->“选项”中,有一个选项“当我在新选项卡中打开链接时,立即切换到它”。取消选中此选项后,选择“在新选项卡中打开”或鼠标中键单击的链接将在新选项卡中打开而不被聚焦。在同一个选项选项卡上,您还需要选中“在新选项卡中打开新窗口”(第一个复选框)。
这适用于大多数普通链接。实际上是 JavaScript 代码片段的链接将无法在新选项卡中使用,因为它们依赖于当前页面中存在的代码。
我发现在 Firefox 中有用的一个改变是让光标根据它悬停在什么类型的链接上而改变。这将允许您在基本级别上直观地区分单击链接时会发生什么,而无需查看目标地址。我最初是在askvg找到的。它是对文件的补充<profile directory>/chrome/userContent.css
(如果目录和文件不存在,则创建它们):
/* Change mouse cursor for hyperlinks that open in a new window or tab */
:link[target="_blank"], :visited[target="_blank"],
:link[target="_new"], :visited[target="_new"] {
cursor: crosshair;
}
/* Change mouse cursor for JavaScript links */
a[href^="javascript:"] {
cursor: move;
}
/* Cursor types
default - Normal select cursor
text - Text select cursor (I bar)
vertical-text - Vertical text select cursor
progress - Working in background cursor
wait - Busy cursor
help - Help cursor
crosshair - Precision select cursor
move - Move cursor
no-drop - Unavailable cursor
not-allowed - Unavailable cursor
e-resize - Horizontal resize cursor
n-resize - Vertical resize cursor
nw-resize - Diagonal resize 1 cursor
ne-resize - Diagonal resize 2 cursor
col-resize - Column resize cursor
row-resize - Row resize cursor
*/
除此之外,还不清楚你想在什么背景下做这件事,或者至少你愿意在多大程度上实现这一点。您提到在后台打开窗口/选项卡并自行关闭意味着您实际上并不需要用户查看窗口/选项卡。是不是你只是想要一些 URL 的请求?使用XMLHttpRequest
就足够了吗?
你自己想要这个,所以如果你走 Firefox 扩展的路线,那么很容易打开标签和窗口,而不是让它们集中。可以使用addTab()来完成。
描述一下你总体上试图完成的工作以及你这样做的背景会对你有所帮助。
附加信息:
根据您所描述的附加信息,您需要编写一个 Firefox 扩展程序,它可以让您完全控制弹出窗口和选项卡,让它们按照您想要的方式工作。对于听起来你想要的东西,你应该(至少)看到以下 Mozilla 文档:
在选项卡式浏览器上复制示例:
// Add tab (without it becoming active)
gBrowser.addTab("http://www.google.com/");
// Add tab, then make active
gBrowser.selectedTab = gBrowser.addTab("http://www.google.com/");
从选项卡式浏览器:
在正确的窗口/选项卡中打开 URL
chrome://browser/content/utilityOverlay.js中提供了一些方法
,可以轻松地在 openUILinkIn 和 openUILink 等选项卡中打开 URL。
openUILinkIn( url, where, allowThirdPartyFixup, postData, referrerUrl ) 其中:
- “当前”当前选项卡(如果没有任何浏览器窗口,则改为在新窗口中)
- “选项卡”新选项卡(如果没有任何浏览器窗口,则改为在新窗口中)
- “tabshifted”与“tab”相同,但如果默认选择新选项卡,则在后台,反之亦然
- “窗口”新窗口
- “保存”保存到磁盘(没有文件名提示!)
同样来自Tabbed browser,一个覆盖扩展的代码示例
将根据按下的鼠标按钮和按住的热键(例如:Ctrl)在新选项卡、现有选项卡或现有窗口中打开 URL。给出的代码适用于menuitem,但同样适用于其他 XUL 元素。这仅适用于 browser.xul 的覆盖。
许:
<menuitem oncommand="myExtension.foo(event)" onclick="checkForMiddleClick(this, event)" label="Click me"/>
JS:
var myExtension = {
foo: function(event) {
openUILink("http://www.example.com", event, false, true);
}
}