通常情况下,我们要打开一个外部链接(新开窗口),往往使用如下代码:
<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";}
}
}
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();
};
external();
};
可以把以上两段 JavaScript 代码存储在 external.js 文件里,然后通过外部链接方法调用:
<script type="text/javascript" src="external.js"></script>
1 条评论:
鉴于目前网络日益多样化和复杂化,我们在中国首次组织了网络标准沙龙以讨论开放网络标准以及网页开发技术,本沙龙仅为技术交流,禁止任何商业宣传。 "
本次沙龙参与者有来自伦敦的 Henney Swan (W3C ILG co-lead)、来自挪威的 Zibin Cheah (Web Evangelist at Opera Software),以及一些业内人士。
如果您对于本沙龙感兴趣,可以参与到我们的讨论中。今后我们会不定期的组织沙龙聚会。
本次沙龙主题:Web 2.0 时代网页风格设计及用户体验
时间:10 月 18 日 下午 3 点
地点:lush 酒吧 (海淀区五道口成府路35号华清嘉园光合作用2楼旁边)
本次活动由Opera赞助。
发表评论