打开一个链接打开一个新窗口(不是选项卡)
这个问题在这里已经有了答案:
用纯HTML你不能影响这一点 - 每个现代浏览器(=用户)都可以完全控制这种行为,因为它过去被滥用了很多......
锚元素具有属性target
*。 您正在查找的值是_blank
**。
<a href="www.example.com/example.html" target="_blank">link text</a>
它会打开一个新窗口(HTML4)或一个新的浏览上下文(HTML5)。 但是,现代浏览器中的浏览上下文大多是“新标签”而不是“新窗口”。 你没有影响,你不能“强制”浏览器打开一个新的窗口。
另一方面,通过JavaScript强制一个新窗口是可能的 - 请参阅下面的Ievgen解答一个JavaScript解决方案。 但是,请注意,通过JavaScript打开窗口(如果未在来自锚元素的onclick事件中完成)可能会被弹出窗口拦截器阻止!
(*)该属性的历史可以追溯到浏览器没有制表符并且使用框架集是最先进的。 与此同时,这个属性的功能稍有改变(参见MDN Docu)
(**)还有一些其他值不再有意义(因为它们是用frameset设计的),比如_parent
, _self
或_top
。
这将打开一个新窗口,而不是标签(使用JavaScript,但非常简洁):
<a href="print.html"
onclick="window.open('print.html',
'newwindow',
'width=300,height=250');
return false;"
>Print</a>
我知道它的老Q,但如果你通过搜索解决方案来到这里,所以我通过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">
编辑:
第一,我在原始代码中做了一些小改动,现在它完全按照用户屏幕比例打开新窗口(对于风景桌面)
但是,我想推荐你使用下面的代码,如果你在手机中打开新标签中的链接(感谢其他问题中的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;
}
链接地址: http://www.djcxy.com/p/36609.html