HTML中的JavaScript
<script>
元素
<script>
元素属性
<script>
元素有下列八个属性
- async: 可选。表示立即下载脚本,但不能阻止其他页面动作。只对外部脚本文件有效。
- charset: 可选。使用src属性指定的代码字符集。很少使用。
- crossorigin: 可选。配置相关的CORS(跨源资源共享)设置。默认不使用。
- anonymous: 配置文件请求不必设置凭据标志。
- use-credentials: 设置凭据标志,意味着出站请求会包含凭据。
- defer: 可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。
- integrity: 允许比对接收到的资源和指定的加密签名以验证子资源完整性。如果接收到的资源的签名与这个属性指定的签名不匹配,则页面报错,脚本不执行。可以用于确保CDN不会提供恶意内容。
- language: 废弃。
- src: 可选。要执行的代码的外部文件。
- type: 可选。不指定则是
text/javascript
,若是module
则会当成ES6模块,而且此时代码中才能出现import/export
关键字。
<script>
跨域请求
<script>
标签中的src可以包含来自外部域的JavaScript文件,就像<img>
一般。
example:
<script src="http://www.somewhere.com/afile.js"></script>
浏览器在解析这个资源时,会向src
属性指定的路径发送一个GET
请求,以获取相应资源。
<script>
元素位置
<script>
标签会阻塞页面的解析渲染,通常将所有JavaScript引用放在<body>
元素中的页面内容后面。
动态加载脚本
let script = document.createElement('script')
script.src = 'one.js'
document.head.appendChild(script)
行内代码和外部文件
尽量使用外部文件,有更好的可维护性、缓存以及适应未来的优点。
<noscript>
元素
当符合以下两种场景时,浏览器将显示包含在<noscript>
标签中的内容
- 浏览器不支持脚本;
- 浏览器对脚本的支持被关闭。