网页打开新窗口target=_blank不符合标准

网页打开新窗口target=_blank不符合标准我们在新窗口中打开链接的通常方法是在链接后添加target=_blank。我们采用过渡文档类型(xhtml 1-过渡。dtd),但是当我们使用strict DOCTYPE(XHTML 1-strict . dtd)时,这个方法会无法通过W3C的验证,会出现下面的错误信息: thereanoattributetargetforthiselement(inthistmlversion)本来在HTML4.01/XHTML1.0/XHTML1.1的严格DOCTYPE下,target=_blank 、target=_self 等语法都是无效的,我们只能通过JavaScript来实现。有朋友问为什么不允许target=_blank ?这个属性很方便。呵呵,不知道W3C专家怎么看。据我所知,主要是“可用性和友好性”的问题,因为外国人认为在没有得到用户同意和明确提示的情况下打开一个新窗口是不礼貌的。这个取消是否合理,我们来看看解决方案。属性rel HTML4.0新增了一个属性:rel,用来说明链接与包含此链接的页面之间的关系,以及链接打开的目标。Rel有很多属性值,比如next、previous、chapter、section等等。我们想要使用的是rel=external 属性。原始代码是这样写的:href= document . html target= _ blank 打开新窗口/a现在这样写:a href= document . html rel= external 打开新窗口/a这是一个符合严格标准的方法。当然,它必须与javascript一起工作。完整的javascript代码JS如下:functionexternallinks(){ if(!document.getElementsByTagName)返回;var anchors=document . getelementsbytagname( a );for(vari=0;ianchors.lengthI){ var anchor=anchors[I];if(anchor . get attribute( href )anchor . get attribute( rel )= external )anchor . target= _ blank ;} } window.onload=externallinks可以保存为. js文件(比如external.js),然后通过外部join方法调用:script type= text/JavaScript src= external . js /script。就是这样。最后一句,我的网站采用的target=new 在过渡DOCTYPE下是允许的,但也不符合严格标准。我将在下一个版本中采用严格模式,并将所有target=new 改为rel=external。本条指以下条款:KevinYank的《New-WindowlinksinaStandards-CompliantWorld》 《Standards-basedReplacementfortarget="_blank"inExternallinks》 2006年7月13日更新很多门户网站的首页都是弹出式的。我估计至少在中国,这个观念暂时还改变不了。在这种情况下,不需要在每个链接下添加rel。整个代码如下:scripttype=text/javascript//![CDATA[functionexternalLinks(){ if(!document.getElementsByTagName)返回;var anchors=document . getelementsbytagname( a );for(vari=0;ianchors.lengthI){ var anchor=anchors;if(anchor . get attribute( href ))anchor . target= _ blank ;} } window.onload=externalLinks//]]/script

网页打开新窗口target=_blank不符合标准