打开一个链接打开一个新窗口(不是选项卡)

有没有办法使链接打开一个新的浏览器窗口(不是选项卡),而不使用JavaScript?

用纯HTML你不能影响这一点 – 每个现代浏览器(=用户)完全控制这种行为,因为它在过去被滥用了很多…

锚元素具有属性target *。 你正在寻找的价值是_blank **。

 <a href="www.example.com/example.html" target="_blank">link text</a> 

它打开一个新窗口(HTML4)或一个新的浏览上下文(HTML5)。 但是,现代浏览器中的浏览上下文大多是“新标签”而不是“新窗口”。 你没有影响,你不能“强制”浏览器打开一个新的窗口。

另一方面,通过JavaScript强制一个新的窗口是可能的 – 请参阅下面的JavaScript解决schemeIevgen的答案。 但是,请注意,通过JavaScript打开窗口(如果不在来自锚元素的onclick事件中),则会受到popup窗口拦截器的阻止!

(*)这个属性的历史可以追溯到浏览器没有标签的时候,而使用框架是最先进的。 同时,这个属性的function稍有改变(参见MDN Docu )

(**)还有一些其他值不再有意义(因为它们是用framesetdevise的),比如_parent_self_top

这将打开一个新的窗口,而不是标签(使用JavaScript,但非常简洁):

 <a href="print.html" onclick="window.open('print.html', 'newwindow', 'width=300,height=250'); return false;" >Print</a> 

我知道它的老Q,但如果你通过search解决scheme来到这里,所以我通过jQuery得到了一个很好的

  jQuery('a[target^="_new"]').click(function() { var width = window.innerWidth * 0.66 ; // define the height in var height = width * window.innerHeight / window.innerWidth ; // Ratio the hight to the width as the user screen ratio window.open(this.href , 'newwindow', 'width=' + width + ', height=' + height + ', top=' + ((window.innerHeight - height) / 2) + ', left=' + ((window.innerWidth - width) / 2)); }); 

它会在新窗口中打开所有的<a target="_new">

编辑:

第一,我在原来的代码中做了一些小的改动,现在它开启了新的窗口,完全按照用户的屏幕比例(对于风景桌面)

但是,我想build议你使用下面的代码,如果你在手机中打开新标签中的链接(感谢zvona回答在其他问题 ):

 jQuery('a[target^="_new"]').click(function() { return openWindow(this.href); } function openWindow(url) { if (window.innerWidth <= 640) { // if width is smaller then 640px, create a temporary a elm that will open the link in new tab var a = document.createElement('a'); a.setAttribute("href", url); a.setAttribute("target", "_blank"); var dispatch = document.createEvent("HTMLEvents"); dispatch.initEvent("click", true, true); a.dispatchEvent(dispatch); } else { var width = window.innerWidth * 0.66 ; // define the height in var height = width * window.innerHeight / window.innerWidth ; // Ratio the hight to the width as the user screen ratio window.open(url , 'newwindow', 'width=' + width + ', height=' + height + ', top=' + ((window.innerHeight - height) / 2) + ', left=' + ((window.innerWidth - width) / 2)); } return false; } 

你可以试试这个:

  <a href="some.htm" target="_blank">Link Text</a> 

你也可以试试这个:

  <a href="some.htm" onclick="if(!event.ctrlKey&&!window.opera){alert('Hold the Ctrl Key');return false;}else{return true;}" target="_blank">Link Text</a> 

浏览器控制了很多这种function,但是

 <a href="http://www.yahoo.com" target="_blank">Go to Yahoo</a> 

将尝试在新窗口中打开yahoo.com。