为什么CDATA不保护我的javascript代码来自HTML验证器?

我在我的网页上插入了一些js代码(由第三方服务提供),这打破了我的html验证.我该如何解决这个问题? CDATA没有做到这一点.

这是我的示例代码段:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head>
  <title>test</title>
  <script type="text/javascript">
  /*<![CDATA[*/
    document.write('<script src="//sharebutton.net/plugin/sharebutton.php?type=horizontal&u=' + encodeURIComponent(document.location.href) + '"></scr' + 'ipt>');
  /*]]>*/
  </script>
</head>
<body>

  <p>test</p>

</body>
</html>

here你可以找到验证器的结果.

最佳答案 <![CDATA [*是XML的一个特性,而不是HTML.它只是HTML术语中script元素的文本内容的一部分. 要安全地包含字符串< / script>在HTML中的JavaScript字符串文字中:转义斜杠:

'"><\/script>')
点赞