105

我正在尝试“强制”Safari 或 IE7使用新选项卡打开新页面。

以编程方式,我的意思是:

window.open('page.html','newtaborsomething');
4

11 回答 11

121

您可以在 Firefox 中工作,将属性 target="_newtab" 添加到锚点以强制打开新选项卡。

<a href="some url" target="_newtab">content of the anchor</a>

在javascript中你可以使用

window.open('page.html','_newtab');

说,我部分同意山姆。你不应该强迫用户打开新页面或新标签,而不是在他们点击链接之前向他们显示将要发生的事情的提示。

让我知道它是否也适用于其他浏览器(目前我没有机会在 Firefox 以外的其他浏览器上尝试它)。

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

于 2009-01-09T09:32:45.023 回答
65

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

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

于 2009-01-09T09:35:40.743 回答
47

那些尝试使用以下内容的人:

window.open('page.html', '_newtab');

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

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

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

window.open('page2.html', '_newtab2');

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

于 2011-02-24T21:48:56.410 回答
14

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

我的烦恼-当网站强迫我在新窗口/标签中打开时,我讨厌它-我完全有能力为自己做出决定。特别是当他们在 javascript 中执行此操作时 - 这真的无济于事。

于 2009-01-09T09:20:37.890 回答
9

你是否已经尝试过

var open_link = window.open('','_blank');
open_link.location="somepage.html";
于 2011-02-09T10:22:28.820 回答
6

这工作 100%

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

于 2019-02-12T16:10:14.753 回答
5

我在 Chrome 中发现,

window.open('page.html','_newtab')

只会工作一次。

您可以使用:

window.open(ct.getNewHref(),'_newtab' + Math.floor(Math.random()*999999));

打开多个新标签。

于 2010-03-01T19:39:37.087 回答
4

我与 jQuery 一起使用的代码:

$("a.btn_external").click(function() {
    url_to_open = $(this).attr("href");
    window.open(url_to_open, '_blank');
    return false;
});

这对于区分子项中父项的单击事件很有用。通过使用这种方法,您不会触发父级的点击事件。

于 2011-11-08T23:05:23.327 回答
0

如果您愿意,可以使用这种方法,这有点 hacky,但会提供所需的功能:

jQuery('<a/>', {
    id: 'foo',
    href: 'http://google.com',
    title: 'Become a Googler',
    rel: 'external',
    text: 'Go to Google!',
    target:'_blank',
    style:'display:none;'
}).appendTo('#mySelector');

$('#foo').click()
于 2012-08-10T20:16:59.530 回答
-2

如果您可以调用批处理文件,这可能会起作用(我在 XP sp2 和 IE8 中使用 php ...您可以尝试 IE7,不知道)。在 .bat 文件中使用以下(或类似内容)打开 Windows:启动“C:\Progra~1\Intern~1\iexplore”http://www.site.com“。引号和 C:\Progr... 等之间没有空格。在某些时候,这可能会开始打开新窗口(即 target="_blank")而不是新选项卡,但在一定程度上可以工作;没有经过广泛测试。要在常规批处理文件 (CMD.exe) 中使用它,您可能需要已经打开一个窗口。只是分享一些我偶然发现的东西。为澄清而编辑。

于 2011-11-28T07:45:29.200 回答
-7
<a href="http://www.google.com/" target="_self">New Tab Example</a>

在 IE7 中工作。

问候,

格伦

于 2010-04-22T19:19:12.337 回答