javascript - 包装页面 JavaScript 代码的正确方法

标签 javascript

最近我看到了不同的包装内联 JavaScript 的方法:


选项 1:

<script type="text/javascript">//<![CDATA[
    ...
// ]]></script>

选项 2:

<script>
...
</script>

选项 3:

<script type="text/javascript"><!--
...
//--></script>

选项 4: 以上任何一项的组合?


目前的标准是什么?

最佳答案

HTML5

<script>
alert('Hello world.');
</script>

XHTML

<script type="text/javascript">
//<![CDATA[
alert('Hello world.');
//]]>
</script>

旧浏览器

<script language="javascript"><!--
alert('Hello world.');
//--></script>

要将文档解析为 XML,XHTML 中的 CDATA 部分是必需的。

根据 Douglas Crockford , language属性已弃用,您可以使用 type属性代替。在 HTML 中,它是可选的。关于 HTML 评论标签,他是这样说的:

Do not use the <!-- //--> hack with scripts. It was intended to prevent scripts from showing up as text on the first generation browsers Netscape 1 and Mosaic. It has not been necessary for many years. <!-- //--> is supposed to signal an HTML comment. Comments should be ignored, not compiled and executed. Also, HTML comments are not to include --, so a script that decrements has an HTML error.

因此,如果您正在为今天的网页开发脚本,您将使用 HTML5 方式。

关于javascript - 包装页面 JavaScript 代码的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14188522/

相关文章:

javascript - jquery 选择器与 .length 返回不同结果的普通 JS 选择器

javascript - 当下拉选择通过模型更改时如何触发jquery事件

javascript - 如何使用javascript打印http响应中返回的内容

javascript - JSONSerializer 呈现 Java 字符串数组

JavaScript 斐波那契 - RangeError : when base (n == 1) or (n == 0), 但不是 if (n <=)。为什么?

javascript - JS动画从零到当前量

javascript - 在 Ruby on Rails 中通过 Test::Unit 和 Capybara 使用 Javascript 进行集成测试

Javascript if/else 语句,定义和返回变量?

javascript - 如何使用 JavaScript 将 html 文件立即加载到 textarea 框中?

javascript - 如何使用javascript自动循环浏览页面?