Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

往 HTML 文档里插入 CDATA 块?

  在 XML 中有 CDATA 块可以用于插入文本,但这东西并不受 HTML 欢迎,因为 HTML 中有各种标签可以干这件事。甚至 HTML 中直接把 createCDATASection 方法都拉黑了,不允许在 HTML 文档中创建 CDATA 块。然而我们也不能完全无视 HTML 中的 CDATA,因为它可能存在。
  下面是在一个 HTML 文档中 createCDATASection 的尝试,它会抛出异常:
<script> try { document.createCDATASection('hehe'); } catch(e) { alert(e.message); } </script> Failed to execute 'createCDATASection' on 'Document': This operation is not supported for HTML documents.   然而通过 XML 文档就可以创建 <script> addEventListener('DOMContentLoaded', () => { var xml = new DOMParser().parseFromString('<xml/>', 'text/xml'); var cdata = xml.createCDATASection('hehe'); document.body.appendChild(cdata); }); </script>   所以 HTML 文档中也可能有一些奇奇怪怪的东西,在遍历文档判断节点类型时可能会遇到。
  确实就目前的 HTML 而言,CDATA 已经完全没卵用了,因为 HTML 自带的各种东西已经可以满足 CDATA 的功能了,比如 SCRIPT 标签等。我觉得一般的框架也不应该在遍历 DOM 时处理这些特殊类型的节点(因为会增加没用的代码量),所以项目中如果没有非它们不可的需求还是别引入一些 HTML 之外的东西比较好。
网名:
34.203.213.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^