更新:如果你在一个HTML5 +世界the target
attribute is no longer deprecated(no longer missing, to be more accurate)作为it was in XHTML 1.0阅读本(原题的上下文)。我建议如果你现在正在阅读这个,忽略下面的所有内容,使用target
属性是否引发合规性警告,所有的浏览器都支持它,它永远不应该被排除在外......事实上它是在稍后的规范中加入显示删除它是一个错误。
这将工作:
$('a#external-url').live('click', function(){
$(this).attr('target','_blank');
});
然而,ID应该是唯一的,如果你加载超过1,他们需要有一个类来代替,就像这样:
<a href="http://google.com" class="exteral-url">Google</a>
和jQuery这样的:
$('a.external-url').live('click', function(){
$(this).attr('target','_blank');
});
符合标准的方法是:
$('a.external-url').live('click', function(e){
window.open(this.href);
e.preventDefault(); //or return false;
});
@尼克再次感谢! – mtwallet 2010-04-09 09:50:48
-1 _blank已被弃用!即使您正在通过使用脚本添加属性来解决验证问题。 – 2010-04-09 11:40:03
@詹姆斯 - 我正在解决OP没有约束的问题。如果他们想绕过验证,这是他们的呼吁,而不是我的,这个问题是关于JavaScript不工作。作为一个侧面说明,*通常*我同意,但是'_blank'被弃用是W3C方面轻度迟钝的错误。我敢打赌,从现在开始的5年内,我会赌100美元**每个**浏览器都会支持'_blank'。 – 2010-04-09 11:44:32