|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
HTML5开发的网页文档类型极其简单,就够了,记得5年前还在反复跟团队强调使用XHTML那段冗长的文档类型声明.在扫瞄器IE6、IE7、Firefox2+、Firefpx3+、Opera9.6+、Safari3.1+中测试以下代码(Demo):
<divid="test">
<ahref="#">test</a>
</div>
<divid="result"></div>
<scripttype="text/javascript">
(function(){
vartest=document.getElementById(test);
alert(test.innerHTML);
varresult=document.getElementById(result);
result.innerHTML=test.innerHTML;
alert(result.innerHTML)
})();
</script>
了局会发明,在IE6、IE7扫瞄器中第二次弹出的result.innerHTML中的A元素的href值成了相对路径。
实在祖先们早碰到这些成绩(感激玉伯供应的材料):
- 《getAttribute(”HREF”)isalwaysabsolute》
- 《getAttributehrefbug》
在下面的文章中已说起了处置计划,就是在IE下利用getAttribute(‘href’,2)办法。Microsoft给此办法扩大了第二个参数,可设置为0、1、2,假如设置为2,则前往属性原始值。
剧本修改为:
(function(){
vartest=document.getElementById(test);
alert(test.innerHTML);
varresult=document.getElementById(result);
result.innerHTML=test.innerHTML;
if(/*@cc_on!@*/0){//ifie
varlinks1=test.getElementsByTagName(a);
varlinks2=result.getElementsByTagName(a);
for(vari=0,len=links1.length;i<len;++i){
links2.href=links1.getAttribute(href,2);
}
}
alert(result.innerHTML);
})();
在寻觅此成绩的过程当中还搜刮到HedgerWang发明的一个风趣的BUG成绩:在IE中当从头设置新的href属性值时,假如链接笔墨含有“http://”或“@”,则其innerHTML将显现不准确,显现成设置的href属性。
办理办法(sHref为要设置的href新值):
sHref=http://www.hedgerwow.com;
varisMSIE=/*@cc_on!@*/false;
if(isMSIE){
sHref=+sHref;//addextraspacebeforethenewhref
};
具体:《InternetExplorermightresetAnchor’sinnerHTMLincorrectlywhenanew“href”isassigned》
</p>
HTML标准自1999年12月发布的HTML4.01后,后继的HTML5和其它标准被束之高阁,为了推动Web标准化运动的发展. |
|