3

我有这段代码可以在新窗口中打开我页面中的所有链接:

<base target='_new' />

它在 Chrome 中运行良好,但在 IE(8) 和 Firefox 中则不然。在 Firefox 中,它确实打开了一个新选项卡,但在第二个链接上单击它会加载到新选项卡中,但没有将此选项卡放在前面,因此用户必须手动单击新选项卡。在 IE 中,它会打开一个新的浏览器窗口。是否有等效代码 (..js/Jquery) 可以在所有浏览器的新选项卡中打开?

4

4 回答 4

6

无法保证浏览器将在哪里打开该新窗口/选项卡。不同的浏览器以不同的方式打开新窗口/标签,并且该行为也可能受到浏览器设置的影响。

于 2012-04-29T11:09:32.533 回答
4

Firefox 可以选择立即切换到选项卡。

Tools -> Options -> Tabs, 
    "When I open a link in a new tab, switch to it immediately"

IE9有同样的选择

Tools -> Internet Options -> General -> Tabs Settings
    "Always switch to new tabs when they are created"

IE9 可以选择如何处理新的弹出窗口。

Tools -> Internet Options -> General -> Tabs Settings
    "When a popup is encountered"
     - Let Internet Explorer decide ...
     - Always open popups in a new tab
     - Always open popups in a new window

来自http://windows.microsoft.com/en-US/windows7/Tabbed-browsing-frequently-asked-questions

If you opt to let Internet Explorer decide how to display pop-ups, it 
will display the pop-up in a new window if the pop-up specifies size 
or display requirements. Otherwise, the pop-up is displayed in a new tab.

因此,行为主要取决于用户而不是开发人员。

于 2012-04-29T11:11:24.320 回答
1

您无法控制这部分(如何打开 - 在选项卡或窗口中)。因为这是由浏览器决定的。更重要的是,您甚至不能依赖浏览器的类型,因为每个用户都可以选择他或她的方式来打开新页面:总是在选项卡中或总是在新窗口中或其他方式。

于 2012-04-29T11:11:43.447 回答
0

我不确定这是否适用于“base”标签,但在链接上,“target”属性可以有一个预定义的关键字,或者您想给新窗口提供的任何名称。

可用的关键字是:

  • _blank:在新窗口或选项卡中打开链接
  • _self:在点击的同一帧中打开链接(这是默认设置)
  • _parent:打开父框架中的链接
  • _top:在整个窗口中打开链接

http://www.w3schools.com/tags/att_a_target.asp

如果您不使用这些关键字之一,您可以使用您想要的任何名称,然后该名称将用于引用该窗口。这允许您重复使用打开的选项卡以在其中加载不同的文档。

因此,通过使用“_new”(不是关键字)作为基本目标,您实际上是说所有链接都必须在名为“_new”的窗口中打开。起初这个窗口不存在,所以浏览器创建它(第一次点击),并且它在所有后续点击中重复使用它。

请改用“_blank”,以便每个链接在其自己的新选项卡中打开。

于 2012-05-14T13:43:18.373 回答