给脚本标记一个 ID

我遇到过这样一个场景: 给 script元素一个 id属性可以很容易地解决问题。然而,在阅读了 W3学校离奇莫德script元素之后,这样做似乎有些意外后果。

有没有人遇到过这些问题的浏览器,如 Chrome,Safari,FF3和 IE7了?

71600 次浏览

在目前所有的浏览器中都很好。

唯一搞错 <script id>的浏览器是 Netscape 4,我们很久很久以前就不关心它了。

这个稀奇古怪的页面似乎严重过时了,因为它使用了 language属性、脚本 <!--隐藏和 application/x-javascript。它关于在 <body>中避免使用 <script>的建议(而将其放在 <head>中)与今天鼓励的做法不一致。

如果我们讨论的是 <script>属性兼容性问题: defer不能在任何地方工作,所以不要依赖它; charset不能在任何地方工作,所服务脚本的 Content-Type 上的字符集参数也不能,所以你的脚本字符集最好与页面匹配; type应该始终是 text/javascript,而不是那些写了 RFC4329的书呆子希望你使用的不能工作的替代品之一。

我不认为浏览器在 script元素中添加 id属性会有什么问题。

在我的一些通过 JavaScript 加载其他 JavaScript 的站点上,我添加了一个 class属性,以使引用它们更加容易。验证器没有抱怨。

如果你仍然不得不支持 Netscape 4,那么你将会遇到很多麻烦——同时也会受到其他开发者的同情和哀悼。

简而言之,我不担心。

我知道已经过去很长时间了,但我认为这将是很好的指出,当你看 W3学校脚本标签的定义,你看到在某一点

标记还支持 HTML 中的全局属性

在这些特质中,你会找到你可爱的本我。

同样的道理也适用于很多标签,当我们从帽子中取出这些漂亮的技巧时,它们肯定会给我们带来很大的灵活性。

请记住,在任何元素上设置 id都会引入一个新的全局变量,其名称与 id属性相同:

id as a global variable