如何正确使用方括号与cdata

时间:2016-03-10 19:48:44

标签: javascript cdata

这是我的代码在我的开发者控制台(Chrome)中显示的方式:

<script type="text/javascript">// <!&#091;CDATA&#091;
function hidden(){ 
    document.getElementById("test123").style.visibility = "hidden"; 
} 

document.getElementById("test123").addEventListener("click", hidden);

var banner =document.querySelectorAll('.contactBanner1');
for(var i=0;i<banner.length;i++){ 
    banner&#091;i&#093;.addEventListener('mouseover',hidden,false); 
}
// &#093;&#093;></script>

这是我现在收到的错误:Uncaught SyntaxError: Unexpected token ILLEGAL

如何正确使用 [

1 个答案:

答案 0 :(得分:1)

当XML风靡一时时,人们花了很多时间思考他们的XHTML和XML是由单个XML解析器解析的。因此,XHTML需要通过XML验证。

但是,可以遇到的问题是,当XHTML包含JavaScript并且JavaScript包含,例如,&lt;意思是指小于。

在HTML,XHTML和XML中&lt;表示开始或结束标记的开始。

为了防止这种情况,建议XHTML中的脚本将其内容标记为Character Data,这样,如果/当XML解析器使用它时,它将有效地忽略特殊符号,如&lt; (其中包括)。

因此,脚本应该写成:

 <script type="text/javascript">
   //<![CDATA[ 
           // Inside the CDATA < gets ignored


  //]]>
 </script>

您的代码不遵循此规则,而是为[和]提供Unicode字符。

最后,如果您不担心将JavaScript解析为XML,您可以编写更现代的版本:

 <script>


 </script>