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

问题描述 投票:96回答:11

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

以编程方式我的意思是:

window.open('page.html','newtaborsomething');
javascript internet-explorer-7 safari tabs
11个回答
62
投票

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

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


-2
投票

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


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

适用于IE7。

问候,

格伦


110
投票

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


43
投票

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

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

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

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

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

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

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


14
投票

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

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


7
投票

你有没有尝试过

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

3
投票

我在Chrome中发现了

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

只会工作一次。

您可以使用:

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

打开多个新标签。


2
投票

我用jQuery的代码:

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

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


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()

0
投票

这100%工作

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

© www.soinside.com 2019 - 2024. All rights reserved.