浏览器默认是不允许在 https 里面引用 http 资源的,一般都会弹出提示框。用户确认后才会继续加载,用户体验非常差。 而且如果在一个 https 页面里动态的引入 http 资源,比如引入一个 js 文件,会被直接 block 掉的。Chrome v21 之后,在 SSL 加密页面 embed 非 SSL 的 Flash 资源也会被默默的屏蔽掉,只留下一句 console 报告。 解决方式相对协议如果你的网站同时准备了 https 资源和 http 资源,那么,可以使用相对协议可以帮助你实现当网站引入的都是 http 资源,网站域名更换为 https 后的无缝切换。 具体使用方法为: <img src="//domain.com/img/logo.png"> 简而言之,就是将URL的协议(http、https)去掉,只保留
HTML5 Boilerplate 使用相对协议请求 Google CDN 中的 jQuery ,使用方式为: <script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script> <script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.4.2.js"%3E%3C/script%3E'))</script> 上面的例子中除了引用 Google CDN 中的文件外,还添加了一个本地 jQuery 链接,以便连接 Google CDN 失败后,使用本地副本。代码判断过程为:
使用 iframe使用 iframe 的方式引入 http 资源,比如在 https 里面播放优酷的视频,我们可以先在一个 http 的页面里播放优酷视频,然后将这个页面嵌入到 https 页面里就可以了。 另外一个典型的例子是在 https 页面里通过 Ajax 的方式请求 http 资源,Chrome 是不允许直接 Ajax 请求 http 的。如果两个页面的内容都可以控制的话,当前窗口可以 iframe 窗口进行通信。 其他用法这个小技巧同样适用于 CSS : .omg { background: url(//websbestgifs.net/kittyonadolphin.gif); }
|
|
来自: 付松林 > 《SSL证书 HTTPS》