pin*_*hic 9 html javascript css escaping
我是一名Web开发人员,专注于服务器端编程.我用JavaScript修改了一点点,我已经完成了外部引用的文件或事件处理程序,以及<script>标记之间最小的初始化函数调用.
因此,大约一周前,我很惊讶<script>标签之间的数据通常不会被转义.事实上......它不可能.如果我知道的话,逃离它将会在JavaScript解析器的工作中投入大量的lolwut-ohnoez -wrench,即地球上的每个浏览器.
这导致我们(IMO)clusterfuck 必须使用CDATA来处理带有HTML内部块的文档以通过验证(在XHTML中),这仍然会]]>因为任何原因而在您的代码中出现故障.
作为一个编码/逃避纯粹主义者的东西,我看到了这个抽搐.有几天我现在问自己:
为什么?
谁的想法是将<script>(以及,例如,非常明显不是 JS事件处理程序onclick)从" HTML标签之间的非HTML内容应该被HTML转义 " 这一其他神圣规则中排除,为什么?是不是"这种情况在历史上一直在增长,它现在变得拙劣,处理它",还是有人坐下来思考一些我没有看到的东西?
CSS和<style>标签也是如此(尽管不那么明显).
我们甚至知道是什么促成了这个 - 或者是知识丢失的情况?关于这个话题,我的google-fu一直非常弱,我没有发现任何东西,但由于这实际上是以可怜的OCD方式困扰我,所以我很乐意听到解释,如果有人有.
因为在脚本中使用诸如&和之类的字符是很常见的<,并且逃避它们是一种痛苦.
另一方面,<script>并<style>不能有子元素,因此不需要包含标签.
结果 - HTML定义<script>并<style>在DTD中包含CDATA,因此您无需在文档中手动执行此操作,从而使生活更轻松.
XHTML是不同的.在许多方面,XML比SGML更简单,而且它的DTD(据我所知)没有这个功能.因此,您需要在XHTML中明确说明CDATA标记(或使用实体).它是"clusterfuck"的唯一原因是因为人们声称他们的XHTML是HTML,通过使用text/html内容类型(而不是正确的application/xhtml + xml)来提供它.
至于内部事件属性,SGML不能说特殊字符不应该被视为这样,但是当它们被使用时,它们不应该包含多于函数调用......并且最好避免使用不显眼的特性字符.无论如何JS.
| 归档时间: |
|
| 查看次数: |
1912 次 |
| 最近记录: |