西安seo王,网站建设关键词优化价格,03340网站建设与管理,招标网址将javascrip插入HTML的主要方法是使用script元素#xff0c;这个元素是网景公司#xff08;Netscape#xff09;创造出来的#xff0c;script 元素所属类型因其用法而异。位于 head 元素中的 script 元素属于元数据元素#xff0c;位于其他元素#xff08;如 bod…将javascrip插入HTML的主要方法是使用script元素这个元素是网景公司Netscape创造出来的script 元素所属类型因其用法而异。位于 head 元素中的 script 元素属于元数据元素位于其他元素如 body 或 section中的则属于短语元素。
script的10个属性
1、async
可选。只对外部文件有效HTML5中新增属性用于定义一个异步执行的脚本该属性表示应该立即下载src属性指定的脚本资源但不能阻止其他页面动作比如下载资源或其他脚本加载即不必等该异步脚本下载和执行后再加载页面同样也不必等到该异步脚本下载和执行后再加载其他脚本当有多个添加了async属性的脚本时不能保证执行顺序和出现顺序一致所以要避免异步执行脚本之间存在依赖关系
script async srchttps://www.somewhere.com/index.js/script
2、charset
可选。规定在外部脚本文件中使用的字符编码。这个属性很少使用因为大多数浏览器不在乎它的值在w3c的script标签属性列表已经没有列出这个属性
script typetext/javascript srcmyscripts.js charsetUTF-8/script
常用字符集如下
UTF-8 - Unicode 字符编码ISO-8859-1 - 拉丁字母表的字符编码
如需查看所有可用的字符集可以在w3c查看 HTML 字符集
3、crossorigin
可选。配置相关请求的CORS(跨域资源共享设置默认不使用CORS。
crossorigin anonymus表示文件请求不必设置凭据标志crossorigin use-credentials 需要设置凭据标志出站请求会包含凭据
script srchttps://www.somewhere.com/index.js crossoriginanonymous|use-credentials
4、defer
可选表示脚本需要立即下载但可以延迟到文档完全被解析和显示之后再执行即推迟执行脚本
script defer srchttps://www.somewhere.com/index.js/script
注意HTML5规范要求脚本应该按照他们出现的顺序执行理论上第一个被推迟的脚本会比第二个 被推迟的脚本先执行且被推迟执行的脚本都会在DOMContentLoaded事件之前执行但实际上这个顺序无法保证所以最好只包含一个加defer的延迟执行的脚本
5、intergrity
允许比对接受到的资源和指定的加密签名一般是一个hash值以验证子资源完整性如果接收到的资源的签名与这个属性指定的签名不匹配则页面会报错了脚本不会执行这个属性可以用于确保CDN不会提供恶意内容
script srchttps://code.jquery.com/jquery-3.3.1.slim.min.js
integritysha384-q8i/X965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH8abtTE1Pi6jizo
crossoriginanonymous
/script
主要起到安全防护的作用比如
减少由托管在 CDN 的资源被篡改而引入的 XSS 风险只下载资源源站的指定资源如果http协议请求的资源可以避免在通信过程中请求资源被篡改而导致的XSS风险 6、src
可选表示包含要执行的代码的外部文件规定外部脚本文件的 URL
script srcmyscripts.js/script
src的值可以是可以是外部url也可以是站内文件 绝对 URL - 指向另一个网站如 srchttp://www.example.com/example.js 相对 URL - 指向网站内的文件如 src/scripts/example.js
注意外部脚本文件内容中不能包含 script 标签。
7、language
已弃用最初用于表示代码块中的脚本语言在w3c的script标签属性列表已经没有列出这个属性
8、type
可选代替language规定脚本类型常用值是 JavaScript MIME 类型如果没有指定type的值浏览器会假定使用的是 JavaScript此属性默认值是application/javascript还有一个常用值是application/ecmascript
script typeapplication/javascript
document.getElementById(demo).innerHTML Hello JavaScript!;
/script
9、referrerpolicy补红宝书没列但w3c有列出
可选规定在获取脚本时要发送的引用者信息
script srcmyscripts.js referrerpolicyorigin-when-cross-origin/script 可取值如下
no-referrer不发送引用者信息。no-referrer-when-downgrade 默认值。如果协议安全级别保持不变或更高从 HTTP 到 HTTP从 HTTPS 到 HTTPS从 HTTP 到 HTTPS 是可以的则发送原始来源、路径和查询字符串。 如果协议安全级别较低从 HTTPS 到 HTTP 不行则不发送任何内容。 origin发送文档的来源协议、主机和端口。origin-when-cross-origin对于跨域请求发送文档的来源。对于同源请求发送文档的来源、路径和查询字符串。same-origin对于同源请求发送引用者(referrer)。对于跨域请求不发送引用者。strict-origin-when-cross-origin 如果协议的安全级别保持不变或更高从 HTTP 到 HTTP从 HTTPS 到 HTTPS以及从 HTTP 到 HTTPS 都可以则发送来源信息。 对于较低安全级别从 HTTPS 到 HTTP则不发送任何内容。 unsafe-url发送来源、路径和查询字符串无论安全级别如何。请谨慎使用此值
10、nomodule补红宝书没列但w3c有列出
规定脚本不应在支持 ES2015 模块的浏览器中执行。
可取值为
TrueFalse ps本文基于红宝书第4版并结合w3c的学习小笔记若有不恰当之处欢迎交流