首页客户案例企业网站建设外贸独立站SEO优化小程序+APP开发自媒体运营关于动态联系咨询

在IE9中短注释节点的BUG

注释节点和文本节点一样都是直接保存数据部分的,所以我们会用data属性去访问。但是在IE9-中,对于短注释的解析有点问题。我们在IE9-中访问短注释节点的data属性时,data属性中的数据头尾的两个字符会被吃掉。甚至如果字符不够时还会出现更奇怪的结果。 运行<!我是个短注释节点> <script> var node=document.childNodes[0]; console.log(node.data); </script>

很显然,IE9-中对注释的认知就是“<!”开头和“>”结尾的标记,并且认为所有注释都是标准注释,也就是“<!--内容-->”的格式,所以紧挨着标记的两个文字被当做标准注释的“--”给吃掉了。 既然它要吃这些文字,那么粮食储配不足的时候它会怎么办呢? 运行<!你妹> <script> var node=document.childNodes[0]; console.log(node.data); </script>

看IE是有多饥渴呀!直接抛出欲求不满的错误了! 那这个问题怎么解决呢?IE中有IEOnly的text属性可以用于解决这个问题。其它浏览器都不支持这个属性,而且这个属性返回的并不是注释的内容,而是整个注释节点的文本,类似outerHTMl,所以使用text我们还得自己去把标记部分文本去掉。 运行<!你妹> <script> var node=document.childNodes[0]; console.log( node.text ?node.text.replace(/^<!(--)?([\s\S]*)\1>$/g,"$2") :node.data ); </script>

 

日期:2015年04月10日

标签: 广州网站设计公司 、 广州网站设计 、 广州网站建设公司 、 广州网站建设 、 广州网站制作公司 、 广州网站制作 、 高端网站设计 、 高端网站建设 、 广州高端网站设计 、 广州高端网站建设

获取您的项目定制及优化报价。

* 为广州天河、白云、海珠、番禺、花都、南沙区提供网站建设服务。
微信二维码15876521776免费获取诊断报告