Bootstrap 4 依赖的基础库中出现了两个新的属性

1

2

3

HTML5 新的规定,是可以允许本地获取到跨域脚本的错误信息,但有两个条件:一是跨域脚本的服务器必须通过 Access-Controll-Allow-Origin 头信息允许当前域名可以获取错误信息,二是当前域名的 script  标签也必须指明 src 属性指定的地址是支持跨域的地址,也就是 crossorigin 属性。听名字也知道是跨域的时候用的属性,加载本地静态文件根本就不牵涉跨域的问题,所以本地就不应该用它(理论上使用也没关系,但浏览器就是这么定的,印象中如果 crossorigin 用在了本地文件上,浏览器报错信息会告诉你 crossorigin 只能支持 http/https/… 等协议上,所以你非要加载本地静态文件也不是没办法,只能自建本地 web 服务器然后地址写带 scheme 和 host 的完全绝对路径)。

另外除了  script ,所有能引入跨域资源的标签包括  link  和 img 之类,都有一样的属性。

integrity (大部分情况)是给 CDN 的静态文件使用的,比如大名鼎鼎的 ajax.googleapis.com,或者国内的 cdn.bootcss.com。CDN虽然好但 CDN 有可能被劫持,导致下载的文件是被篡改过的(比如通过 DNS 劫持),有了 integrity 就可以检查文件是否是原版。但因为本地文件用的域名跟网页是同一个域名,不存在劫持的问题(或者劫持就连网站本身一起被劫持了,那就不是 integrity 能解决的问题了),所以本地静态文件没有太大必要用这个属性。

当然,还有一种情况是你自己搭了一套提供静态文件的独立站点,这个时候用 integrity 是有意义。MDN 文档里也提到了 integrity 值的生成方式,这里也再引用一下:

1 cat FILENAME.js | openssl dgst -sha384 -binary | openssl base64 -A

或者

1 shasum -b -a 384 FILENAME.js | awk '{ print $1 }' | xxd -r -p | base64

总之简单一句话:只有当你的网页域名和要载入的静态文件存放的站点域名不一样的时候,使用这两个属性才有意义(并且因浏览器的规定 crossorigin 属性只有这个时候才能正常使用)。

原文出处:https://www.cnblogs.com/ihuangqing/p/10717018.html

html css integrity,HTML5 script 标签的 crossorigin 和integrity属性的作用相关推荐

  1. HTML5 script 标签的 crossorigin 和integrity属性的作用

    Bootstrap 4 依赖的基础库中出现了两个新的属性 1 <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.slim ...

  2. script标签async和defer的区别及作用

    作用: 1.没有 defer 或 async,浏览器会立即加载并执行指定的脚本,也就是说不等待后续载入的文档元素,读到就加载并执行. 2.async 属性表示异步执行引入的 JavaScript,与 ...

  3. html5新标签和css3的新属性

    html5新特性 较为常用的有:<artical></artical>标签定义外部的内容.比如来自一个外部的新闻提供者的一篇新的文章,总之久是可以连接外部类似文章的东西.< ...

  4. script 标签的 defer 与 async 属性

    前言 在面试的时候,经常会遇到一道经典的面试题: 如何优化网页加载速度? 常规的回答中总会有一条: 把 css 文件放在页面顶部,把 js 文件放在页面底部. 那么,为什么要把 js 文件放在页面的最 ...

  5. php中script标签,关于 script 标签你应该知道的

    script标签用来在网页中执行JavaScript,它可以直接包含JavaScript代码,也可以直接通过src指向一个同域或者不同域的外链. 1. script标签默认会阻塞页面解析,并按照它们出 ...

  6. script标签的同步和异步

    1).把<script>标签放在<head>中意味着必须等到全部的js代码都下载解析和执行完成以后,才开始展现页面内容,为避免这个问题一般把js代码全部放在<body&g ...

  7. script标签中的defer和async属性

    默认情况下,浏览器是同步加载 JavaScript 脚本,即渲染引擎遇到<script>标签就会停下来,等到执行完脚本,再继续向下渲染.如果是外部脚本,还必须加入脚本下载的时间. 如果脚本 ...

  8. script 标签上的 defer 和 async 属性是什么?

    我们经常使用 script 标签向页面插入一个常规的 JavaScript 文件: <script src="/path/to/script.js"></scri ...

  9. script标签中type为script type=text/x-template是个啥

    写过一点前端的都会碰到需要使用JS字符串拼接HTML元素然后append到页面DOM树上的情况,一般的写法都是使用+号以字符串的形式拼接,如果是短点的还好,如果很长很长的话就会拼接到令人崩溃了. 比如 ...

最新文章

  1. Win7 64位系统,PHP 扩展 curl方法
  2. 武汉众邦银行的数字化升级秘诀:让每个业务⼈员都能自助式分析查询
  3. C语言实现通用链表初步(二)
  4. sql server 2008学习8 sql server存储和索引结构
  5. 总结-各种安全漏洞学习环境集合(转)
  6. PAT_B_1003_Java(20分)
  7. 【程序设计】模块化程序设计
  8. 网络性能优化(NAPI)
  9. I/O读写的另一种方式-NIO
  10. 044、JVM实战总结:高级工程师的硬核技能:JVM的Young GC日志应该怎么看?
  11. 灰光和彩光_通信行业5G招标系列点评之二:一文读懂5G前传-光纤、灰光、彩光、CWDM、LWDM、MWDM...
  12. HDU3585 Information Disturbing 树形dp+二分
  13. ASP.NET 实践:锁定 ASP.NET 配置设定
  14. 微信小程序弹出框样式
  15. linux的tar命令详情;linux多个文件压缩打包到一个压缩文件
  16. php在线运行调试工具源码
  17. 主成分回归之后预测_回归分析之主成分回归
  18. could not establish connection to “hostname”
  19. Python上位机与C51单片机串口通信
  20. 米兔机器人第三代测评_米兔智能机器人——年轻人的第一台 31313?

热门文章

  1. 用锤子发射导弹,程序员的世界你不懂
  2. 学了半天,import 到底在干啥?
  3. 为进大厂刷爆算法题,最后却倒在了基础题上?太苦了!
  4. 你真敢ZAO吗?解读换脸AI “细思极恐” 的用户协议
  5. sql语句换行_Spark随笔|关于Bucket Table与SQL语句转换
  6. 将用户添加到sudoers_在CentOS系统中将用户添加到Sudoers文件的方法
  7. tensorflow对应的cudnn、cuda版本
  8. leetcode-16-最接近的三数之和
  9. 基础-栈队列简单测试
  10. golang 并发demo 写入 redis