最近在做IDRSS在线RSS阅读器,符合XHTML1.1标准,但是发现一个问题,target="_blank"属性不再被支持!
在XHTML1.0过渡型标准之前,target="_blank"属性一直是点击链接后弹出新窗口的方法,但是在XHTML1.0严格型标准以及XHTML1.1之后就不再支持target属性(这个方法将通不过W3C的校验),也就是说不能再用target="_blank"来弹出一个新的窗口!我也不知道为什么W3C要取消这个标准,有些文章说在国外未经许可的弹出一个新窗口是不礼貌的表现,无语……东西方文化的不同,但毕竟标准掌握在人家手里,我们没有话语权!联想到最近的中国自己的无线标准:WAPI协议,更加显现出核心技术和标准的重要性!!!只有自己掌握了核心技术及标准才能维护我们自己的利益~
废话少说,弹出新窗口才是符合中国国情和用户习惯的,看看怎样在Xhtml1.0严格型标准以及以后的XHTML版本中支持打开新窗口:
在Xhtml标准中新增了一个rel属性,rel有许多的属性值,比如next、previous、chapter、section等等。我们要使用的就是rel="external"属性。原来这样写的代码:
<a href="document.html" target="_blank">新窗口</a> 现在要写成这样:
<a href="document.html" rel="external">新窗口</a>
这是符合strict标准的方法。当然还必须配合一个javascript才有效。
javascript完整的代码如下:
function externalLinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
anchor.target = "_blank";
}
}
window.onload = externalLinks;
你可以把它保存成一个.js文件(比如external.js),然后通过外部联接方法调用:
<script type="text/javascript" src="external.js"></script>
就是这样即可实现打开新窗口。