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

以编程方式我的意思是:

window.open('page.html','newtaborsomething');
有帮助吗?

解决方案

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

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

其他提示

您可以在Firefox中使用,添加属性target =" _newtab"到锚点强制打开一个新标签。

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

在javascript中你可以使用

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

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

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

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

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

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

应该真正看一下window.open方法。

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

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

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

当然,新窗口/标签的名称可以是任何名称,如page1,page2,page3等,而不是_newtab2。

由用户决定是使用新标签还是新窗口,开发人员不应该修改此行为。我认为你不能这样做。

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

你有没有试过像

var open_link = window.open('','_blank');
open_link.location="somepage.html";

我在Chrome中发现了

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

只会工作一次。

您可以使用:

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

打开多个新标签。

我与jQuery一起使用的代码:

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

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

如果你想,你可以使用这种方法,这有点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()

这可以100%

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

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

<a href="http://www.google.com/" target="_self">New Tab Example</a>

适用于IE7。

此致

格伦

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top