以编程方式在选项卡上打开新页面

Ric*_*ega 96 javascript safari tabs internet-explorer-7

我正试图"强迫"Safari或IE7 使用新标签打开新页面.

以编程方式我的意思是:

window.open('page.html','newtaborsomething');
Run Code Online (Sandbox Code Playgroud)

Ein*_*eki 110

您可以在Firefox中使用属性target ="_ newtab"添加到锚点以强制打开新选项卡.

<a href="some url" target="_newtab">content of the anchor</a>
Run Code Online (Sandbox Code Playgroud)

在javascript中你可以使用

window.open('page.html','_newtab');
Run Code Online (Sandbox Code Playgroud)

说,我部分赞同萨姆.您不应强制用户打开新页面或新选项卡,而不显示他们点击链接之前将会发生什么的提示.

让我知道它是否适用于其他浏览器(我目前没有机会在其他浏览器上尝试它而不是Firefox).

编辑:为ie7添加了参考可能这个链接很有用
http://social.msdn.microsoft.com/forums/en-US/ieextensiondevelopment/thread/951b04e4-db0d-4789-ac51-82599dc60405/

  • 我很确定"_newtab"毫无意义,除非有人提供相反的文件.您所做的只是打开一个窗口,其中*name*是_newtab(这就是为什么所有后续链接与该目标在同一窗口中打开的原因).您可以定位"foo"或"bar"并查看相同的行为.唯一众所周知的目标是_blank,_self,_parent和_top.http://www.htmlcodetutorial.com/linking/_A_TARGET.html (55认同)
  • 感谢您的Firefox提示,现在我已更新我的TargetKiller插件以删除"_newtab"和"newtab".:P (6认同)
  • 在所有构建/平台上可能不是这种情况,但Linux上的Firefox 3.5不允许您多次执行此操作...如果您的页面上有多个target ="_ newtab"链接,请单击其中任何一个只会填充*single*new标签...也就是说,后续点击会覆盖之前在该标签中打开的任何内容.让我觉得这实际上是打开一个名为*"_newtab"的标签*,而不是一个特定于浏览器的变通方法. (2认同)

the*_*ker 62

您无法直接控制它,因为它是由Internet Explorer用户控制的选项.

使用具有不同窗口名称的Window.open打开页面将在新的浏览器窗口中打开,如弹出窗口,在新选项卡中打开,如果用户将浏览器配置为这样做.


小智 43

那些你试图使用以下内容:

window.open('page.html', '_newtab');
Run Code Online (Sandbox Code Playgroud)

应该真的看看window.open方法.

您所做的就是告诉浏览器打开一个新窗口NAMED"_newtab"并将page.html加载到其中.您加载的每个新页面都将加载到该窗口中.但是,如果用户将其浏览器设置为在新选项卡而不是新窗口中打开新页面,则会打开一个选项卡.无论如何,它使用相同的名称作为窗口或选项卡.

如果要在不同的窗口或选项卡中打开不同的页面,则必须将新窗口/选项卡的名称更改为不同的页面,例如:

window.open('page2.html', '_newtab2');
Run Code Online (Sandbox Code Playgroud)

当然,新窗口/选项卡的名称可以是任何名称,如page1,page2,page3等,而不是_newtab2.

  • 知道他的东西。“ _newtab”不是保留名称。'_blank'是一个特殊的东西,它打开了另一个未指定且未命名的窗口/选项卡-您可以反复使用该窗口/选项卡。'_newtab'并不特殊,除了它是您给新标签页(默认)或窗口指定的名称之外,浏览器会使用发送给它的任何URL不断刷新该标签页。 (3认同)

Sam*_*rum 14

用户是否想要使用新选项卡或新窗口,这取决于开发人员修改此行为的业务.我不认为你能做到.

我很讨厌 - 当网站迫使我在新的窗口/标签中打开时我讨厌它 - 我完全有能力为自己做出决定.特别是当他们在javascript中这样做时 - 这真的无益.

  • 虽然我同意当网站强行采取行动时会感到烦恼,但我认为对于简单的状态来说,如果不考虑某人可能想要这样做的原因你就不应该做某事,这有点无益.站点在新选项卡中打开内容是很常见的,特别是外部站点链接,或者当活动页面被新内容替换没有帮助时,这不是完全意外的行为.我也建议这不是问题的答案,而且更适合作为对原帖的评论. (6认同)
  • 我喜欢在家里打开批量标签,所以在这种情况下我就是用户.只是提醒一下,有例外. (4认同)

小智 8

你有没有尝试过

var open_link = window.open('','_blank');
open_link.location="somepage.html";
Run Code Online (Sandbox Code Playgroud)


Kev*_*wat 6

这工作 100%

window.open('http://www.google.com/','_newtab' + Date.now());


Der*_*會功夫 5

我在 Chrome 中发现,

window.open('page.html','_newtab')
Run Code Online (Sandbox Code Playgroud)

只会工作一次。

您可以使用:

window.open(ct.getNewHref(),'_newtab' + Math.floor(Math.random()*999999));
Run Code Online (Sandbox Code Playgroud)

打开多个新标签。

  • 那是因为在 Chrome 中,_newtab 只是一个名称,您要求它在名为“_newtab”的选项卡中打开页面 (10认同)