JavaScript中的script标签

<script> 标签是 HTML 中用于嵌入或引用 JavaScript 代码的标签。它允许在网页中嵌入 JavaScript 代码,或引用外部的 JavaScript 文件。以下是对 <script> 标签的详细解释:

1. 基本用法

内嵌 JavaScript 代码: 你可以将 JavaScript 代码直接放在 <script> 标签内。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Script Tag Example</title>
</head>
<body>
    <script>
        // JavaScript code here
        console.log("Hello, World!");
    </script>
</body>
</html>

引用外部 JavaScript 文件: 你可以使用 src 属性引用外部的 JavaScript 文件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>External Script Example</title>
</head>
<body>
    <script src="script.js"></script>
</body>
</html>

2. 属性

src: 指定要引入的外部 JavaScript 文件的 URL。

<script src="path/to/your/script.js"></script>

type: 指定脚本的 MIME 类型。HTML5 中,type 属性是可选的,JavaScript 默认 MIME 类型是 text/javascript

<script type="text/javascript" src="path/to/your/script.js"></script>

async: 表示脚本会异步加载。在脚本加载时,页面会继续渲染。

<script src="path/to/your/script.js" async></script>

defer: 表示脚本会延迟加载。在文档解析完成后执行脚本,保证脚本在 DOMContentLoaded 事件之前执行。

<script src="path/to/your/script.js" defer></script>

integrity: 用于确保脚本文件的完整性,防止被篡改。结合 crossorigin 属性使用。

<script src="path/to/your/script.js" integrity="sha384-..." crossorigin="anonymous"></script>

crossorigin: 指定跨源请求的策略,用于处理跨域资源共享(CORS)。可以是 anonymoususe-credentials

<script src="path/to/your/script.js" crossorigin="anonymous"></script>

3. 加载顺序和执行时机

内嵌 <script> 标签的执行顺序

  • 默认情况下,脚本会按顺序执行,阻塞后续 HTML 的解析。
  • 可以将 <script> 标签放在 </body> 标签前,以确保在 DOM 完全加载后执行。

外部脚本的执行顺序

  • 默认情况下,外部脚本会在下载完成后立即执行,阻塞 HTML 解析。
  • 使用 asyncdefer 属性来改变默认的行为:
    • async:脚本会异步加载,并在加载完成后立即执行,不保证执行顺序。
    • defer:脚本会在文档解析完成后执行,保持顺序。

4. JavaScript 和 HTML 事件处理

可以在 <script> 标签内编写 JavaScript 代码来处理 HTML 事件,例如点击事件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Event Handling Example</title>
</head>
<body>
    <button id="myButton">Click Me</button>
    <script>
        document.getElementById('myButton').addEventListener('click', () => {
            alert('Button clicked!');
        });
    </script>
</body>
</html>

5. 脚本类型

HTML5 默认支持 text/javascript 类型,但你还可以使用其他 MIME 类型,例如:

  • module:表示这是一个 JavaScript 模块(支持 ES6 模块化)。<script type="module"> import { myFunction } from './myModule.js'; myFunction(); </script>
  • text/babel:用于 Babel 转换的脚本(如果你使用 Babel 转译器)。<script type="text/babel"> // JSX code </script>

6. 内容安全策略 (CSP)

如果你在使用内容安全策略 (CSP),可能需要特别注意 <script> 标签的设置。CSP 可以限制哪些源的脚本可以被加载。

示例 CSP 规则

<meta http-equiv="Content-Security-Policy" content="script-src 'self'">

总结

<script> 标签是 HTML 中用于嵌入或引用 JavaScript 代码的关键元素。你可以使用它来嵌入脚本、引用外部脚本文件,并通过属性来控制脚本的加载和执行行为。理解这些用法可以帮助你更好地控制网页的脚本执行和资源管理。

JavaScript

使用JS验证用户输入的内容

上一篇

JavaScript

JavaScript的几种输出你知道多少?

下一篇