您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# HTML的`<script>`标签怎么使用
`<script>`标签是HTML中用于嵌入或引用JavaScript代码的核心元素。本文将详细介绍其基本用法、属性配置、加载机制以及最佳实践。
## 一、基本语法
### 1. 内联脚本
```html
<script>
alert('Hello World!');
</script>
<script src="app.js"></script>
src
属性指定外部脚本URL:
<script src="https://example.com/app.js"></script>
type
属性现代浏览器默认值为module
或text/javascript
:
<script type="module" src="app.mjs"></script>
async
与 defer
属性 | 执行时机 | DOMContentLoaded 事件 |
---|---|---|
无 | 立即执行并阻塞解析 | 必须等待脚本执行 |
async | 下载后立即异步执行 | 可能被阻塞 |
defer | 文档解析后按顺序执行 | 不会阻塞 |
示例:
<script async src="analytics.js"></script>
<script defer src="vendor.js"></script>
crossorigin
属性用于CORS请求:
<script crossorigin="anonymous" src="https://cdn.example.com/lib.js"></script>
integrity
属性子资源完整性校验:
<script
src="https://example.com/app.js"
integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/ux..."
crossorigin="anonymous">
</script>
<!-- 阻塞型加载 -->
<script src="blocking.js"></script>
<!-- 可能乱序执行 -->
<script async src="async1.js"></script>
<script async src="async2.js"></script>
<!-- 保持顺序执行 -->
<script defer src="defer1.js"></script>
<script defer src="defer2.js"></script>
通过JavaScript动态创建:
const script = document.createElement('script');
script.src = 'dynamic.js';
script.async = false; // 保持顺序
document.head.appendChild(script);
<script type="module">
import { util } from './utils.js';
util();
</script>
import('/modules/my-module.js')
.then(module => {
module.default();
});
defer
或动态加载crossorigin
使用公共CDN<link rel="preload" href="critical.js" as="script">
<script nomodule src="legacy.js"></script>
if('noModule' in HTMLScriptElement.prototype) {
// 支持type=module
}
integrity
校验第三方脚本document.write()
<meta http-equiv="Content-Security-Policy"
content="script-src 'self' https://trusted.cdn.com">
//# sourceURL
标记内联脚本:eval('...\n//# sourceURL=dynamicScript.js')
<script>
debugger; // 自动触发断点
// ...
</script>
<script type="importmap">
{
"imports": {
"lodash": "/node_modules/lodash-es/lodash.js"
}
}
</script>
<script type="module">
import config from './config.json' assert { type: 'json' };
</script>
通过合理使用<script>
标签及其属性,可以显著提升页面性能和安全防护能力。建议根据实际场景组合使用不同加载策略,并始终关注Web标准的最新发展。
“`
(注:本文实际约1100字,此处为保留格式显示代码块,实际字数可能略有差异)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。