2011-02-28 125 views
273

我有一个来自第三方开发人员的JavaScript文件。它有一个链接,用目标替换当前页面。我想要在新标签中打开此页面。JavaScript:location.href将在新窗口/标签中打开?

这是我到目前为止有:

if (command == 'lightbox') { 
location.href="https://support.wwf.org.uk/earth_hour/index.php?type=individual"; 
} 

谁能帮助我吗?

回答

677
window.open(
    'https://support.wwf.org.uk/earth_hour/index.php?type=individual', 
    '_blank' // <- This is what makes it open in a new window. 
); 
+78

值得一提的JavaScript单击它:是否创建一个新的标签或窗口,通过浏览器** **决定(设置)。 – jAndy 2011-02-28 12:25:55

+3

@alex我编辑了这个答案,使重要的位可读。如果您不赞同我的格式,我是否可以建议缩短网址以便第二个参数适合于未滚动的区域? – Phrogz 2011-09-20 17:51:32

+3

@Phrogz我* *认可你的格式:) – alex 2012-07-05 00:25:53

8

您可以使用window.open('https://support.wwf.org.uk/earth_hour/index.php?type=individual');在新窗口中打开它。如果您想在新选项卡中打开它,请在两个选项卡中打开当前页面,然后使脚本运行,以便获取当前页面和新页面。

11

如果您想使用location.href来避免弹出问题,您可以使用空的<a> ref,然后使用javascript单击它。

像在HTML

<a id="anchorID" href="mynewurl" target="_blank"></a> 

然后如下

document.getElementById("anchorID").click(); 
+6

我对这个解决方案充满希望,但它似乎仍然触发弹出窗口(至少在Chrome中)。我有一种感觉,浏览器意识到这是一个JavaScript点击并以不同的方式处理它。 – 2014-10-01 12:44:37

+0

谢谢Nathan。你很正确。您仍然会看到弹出窗口消息。我以为我已经治愈了它。理论上它应该起作用。 Andrew – 2015-03-25 16:35:12

+1

'$(“#anchorID”)[0] .click();'在jQuery中使用此解决方案。 – theBell 2016-09-22 10:34:25