通常情况下,我们要打开一个外部链接(新开窗口),往往使用如下代码:
<a href="" target="_blank"></a>
然而把它放在 W3C XHTML 1.0 Strict 标准下却发现无法通过验证。
原来,在严格的 W3C DTD 下,<a /> 标签的 target 属性是不被官方所推荐的,使用 Strict 模式将视 target 属性无效,我们只有利用 JavaScript 来变通实现。
真不知道 W3C 专家们是怎么想的,或许“易用性、友好性”成为他们主张的关键,因为老外觉得不经过用户同意,没有明确提示就打开一个新窗口是不礼貌的。
我们姑且不管这样的概念是否真正合理,先看看解决办法:
rel 属性:规定当前文档与目标 URL 之间的关系,即用来说明链接和包含此链接页面的关系,以及链接打开的目标。
我们将使用 rel="external" 作为 <a /> 标签的特性,那么可以得到如下代码:
<a href="" rel="external"></a>
这是符合 W3C XHTML 1.0 Strict 标准的方法,当然还需要以个 JavaScript 方法作配合:
function external(){
var anchors=document.getElementsByTagName("a");
for(var i=0;i<anchors.length;i++){
if(anchors[i].getAttribute("rel")=="external"){anchors[i].target="_blank";}
}
}
在页面下载完成时自动加载:
window.onload=function(){
external();
};
可以把以上两段 JavaScript 代码存储在 external.js 文件里,然后通过外部链接方法调用:
<script type="text/javascript" src="external.js"></script>