HTML中的JavaScript

237 阅读1分钟

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>标签中的内容

  • 浏览器不支持脚本;
  • 浏览器对脚本的支持被关闭。