日期:2013-10-21  浏览次数:20765 次

最近在做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> 
就是这样即可实现打开新窗口。