是否可以将“text/javascript”假定为 <script> 元素的事实上的默认值?
Posted
技术标签:
【中文标题】是否可以将“text/javascript”假定为 <script> 元素的事实上的默认值?【英文标题】:Can "text/javascript" be assumed a de facto default for the <script> element? 【发布时间】:2011-08-03 19:44:24 【问题描述】:尽管 html4 标准规定 <script>
元素没有默认值,但看起来浏览器默认采用“text/javascript”。这个假设有多安全?
致标准纳粹:我知道这会引起人们的注意,但我相信为了可读性和简洁性而利用一些事实上的标准并没有错(例如,在简单的属性值周围省略引号等)。
【问题讨论】:
标准纳粹?真的吗?鼓励那些认为标准很重要的人给你一个深思熟虑的回应的方式。您也应该直截了当地了解事实,引号在仅由 HTML 4 中的某些字符组成的属性值周围是显式(在标准中)可选的。 HTML5 <script> declarations的可能重复 也许我是一个“标准纳粹”,但我认为为了可读性和简洁性而省略相对少量的代码来保证您的代码在相对任何浏览器中都可以工作有点愚蠢。此外,我个人认为未加引号的 HTML 属性真的很碍眼,而且会使代码有 Dreamweaver 和 Frontpage 的味道 :) @David Dorward 对于我熟悉的语言,我认为自己是语法纳粹,所以无论如何都没有冒犯性,但对我个人而言,事实上,现实世界的标准比委员会制定的标准更有价值. 你可能无意冒犯,但这并不能阻止这个词对很多人的冒犯。 【参考方案1】:从 HTML5 开始,当未指定 type
时,text/javascript
是标准。
然而,就我个人而言,我倾向于始终指定 type
- 比抱歉更安全!
此外,我总是建议在其他人必须支持它的假设下编写代码。你认为下一个人会感谢你的“节省时间”的解决方案,使代码更难遵循吗?我非常怀疑;)
【讨论】:
【参考方案2】:HTML5 现在不需要在脚本标签中声明 mimetype,因为隐含了“text/javascript”;所以是的,我认为假设这是默认设置是安全的。
【讨论】:
【参考方案3】:根据经验,我知道做出这种假设是不安全的。
但是,HTML5 标准确实将语言属性的这个标准值描述为“text/javascript”。
【讨论】:
您发现哪个浏览器默认使用非 JavaScript 的脚本元素,它默认使用什么? 我记不太清了,但可能是 IE6 根本没有执行脚本。 IE6 很高兴没有 type 属性。 好的,那可能是另一个浏览器,但我遇到过。就我个人而言,我不会忽略此属性以避免破坏与任何浏览器的兼容性,只是为了可读性或节省带宽。以上是关于是否可以将“text/javascript”假定为 <script> 元素的事实上的默认值?的主要内容,如果未能解决你的问题,请参考以下文章
我的 aws 角色的信任策略有啥问题,它不能被假定为跨账户?
注意:使用未定义的常量 STDOUT - 假定为“STDOUT”