<script>元素的8个属性

举报
坚果派 发表于 2022/03/08 09:47:16 2022/03/08
【摘要】 <script>元素的8个属性作者:坚果公众号:"大前端之旅"华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GVA成员之一,专注于大前端技术的分享,包括Flutter,小程序,安卓,VUE,JavaScript。HTML <script> 元素用于嵌入或引用可执行脚本。这通常用作嵌入或者指向 JavaScript 代码。<script> 元素也能在其他语...

<script>元素的8个属性

作者:坚果

公众号:"大前端之旅"

华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GVA成员之一,专注于大前端技术的分享,包括Flutter,小程序,安卓,VUE,JavaScript。

HTML <script> 元素用于嵌入或引用可执行脚本。这通常用作嵌入或者指向 JavaScript 代码。<script> 元素也能在其他语言中使用,比如 WebGL 的 GLSL 着色器语言。

async:

可选,表示立即开始下载脚本,但不能阻止其他页面的动作,比如下载资源或等待其他脚本加载。只对外部脚本有效。

对于普通脚本,如果存在 async 属性,那么普通脚本会被并行请求,并尽快解析和执行。

对于模块脚本,如果存在 async 属性,那么脚本及其所有依赖都会在延缓队列中执行,因此它们会被并行请求,并尽快解析和执行。

该属性能够消除解析阻塞的 Javascript。解析阻塞的 Javascript 会导致浏览器必须加载并且执行脚本,之后才能继续解析。defer 在这一点上也有类似的作用。

这是个布尔属性:布尔属性的存在意味着 true 值,布尔属性的缺失意味着 false 值。

charset:

可先,使用src属性指定的代码字符集。

crossorigin:

可选,配置相关请求的CORS设置。默认不使用CORS。crossorigin=anonyous配置文件请求不必设置凭据标志。crossorigin=use-credentials设置凭据表示,意味着出站请求包含凭据。

那些没有通过标准CORS (en-US)检查的正常script 元素传递最少的信息到 window.onerror。可以使用本属性来使那些将静态资源放在另外一个域名的站点打印错误信息。

defer:

可选,表示在文档解析和显示完成之后再执行脚本。只对外部脚本有效。

defer 属性的脚本会阻止 DOMContentLoaded 事件,直到脚本被加载并且解析完成。

如果缺少 src 属性(即内嵌脚本),该属性不应被使用,因为这种情况下它不起作用。

defer 属性对模块脚本没有作用 —— 他们默认 defer。

integrity:

可选,允许比对接收到的资源和指定的加密签名用以验证子资源完整性(SRI,Subresource Intergrity)。如果接收到的资源的签名与这个属性指定的签名不匹配,页面就会报错,脚本不执行。包含用户代理可用于验证已提取资源是否已无意外操作的内联元数据,这个属性可以用于确保内容分发网络不提供恶意内容(CDN)

language:

可选,用于表示代码块中脚本语言 (JavaScript1.2)

src:

这个属性定义引用外部脚本的 URI,这可以用来代替直接在文档中嵌入脚本

type:

可选,代替language,表示代码块中脚本语言的类型(也称MIME类型)。一般这个值都是 text/javascript和text/ecmascript,目前这个两个值都不常使用了。JavaScript文件里面的MIME的类型通常都是application/x-javascript,不过给type属性值可能导致脚本被忽略。在非IE的浏览器中有效的其他值还有application/javascript和application/ecmascript。如果这个值是module,则代码会被当成ES6模块,而只有这个时候代码中才能出现import和export


参考文档

https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/script

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。