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

时间:2009-01-09 09:15:49

标签: javascript internet-explorer-7 safari tabs

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

以编程方式我的意思是:

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

11 个答案:

答案 0 :(得分:110)

您可以在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/

答案 1 :(得分:62)

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

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

答案 2 :(得分:43)

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

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

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

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

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

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

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

答案 3 :(得分:14)

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

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

答案 4 :(得分:7)

你有没有试过像

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

答案 5 :(得分:3)

我在Chrome中发现了

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

只会工作一次。

您可以使用:

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

打开多个新标签。

答案 6 :(得分:2)

我与jQuery一起使用的代码:

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

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

答案 7 :(得分: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()

答案 8 :(得分:0)

这可以100%

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

答案 9 :(得分:-2)

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

答案 10 :(得分:-7)

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

适用于IE7。

此致

格伦