https下调用http的css、js等不加载,如何解决?

html-css014

https下调用http的css、js等不加载,如何解决?,第1张

浏览器默认是不允许在HTTPS里面引用HTTP资源的,一般都会弹出提示框,用户确认后才会继续加载,用户体验非常差。

而且如果在一个HTTPS页面里动态的引入HTTP资源,比如引入一个js文件,会被直接block掉的。

Chrome 21之后,在SSL加密页面embed非SSL的Flash会怎样呢?会被默默的屏蔽掉,只留下一句console报告。

浏览器为了安全,https下跨协议调用http的是不行的,控制台里会有警告。

所以你只能去找https协议的 css、js资源了。也有文章说https页面中可引用http的图片,发现虽然不会报红错,但是会有黄色的提醒。最好的方法是使用https的资源。

有两种方法:

1、在同一个CSS样式表中,使用 !important 来定义不同的值以适应Firefox和IE。

例如:

padding: 20px !important/For Firefox/

padding: 10px/For IE/

(注意这里IE6是无法识别,important 这个标记的,但它会识别padding: 20px,所以要在后面加上padding: 10px用来覆盖padding: 20px)这个方法适用于修改少量代码。

2、条件注释。(只对IE浏览器有效)这也是北极冰仔部落格目前使用的方法。先为不同浏览器书写各自的CSS样式,再在head中加入以下的代码以适应不同的IE浏览器版本调用:

注意:

gt: greater than (高于)

lte: less than or equal to (低于或等于)

另外:IE还支持一个非标准的标签:comment

This is not Internet Explorer.

This is Internet Explorer.

IE会自动把此标签中的内容当作注释处理掉。

扩展资料

关于css兼容性问题及一些常见问题

目前主流浏览器的兼容性做的都比较好了,以下主要针对IE6,7的不兼容问题进行解决。

1、有浮动存在时,计算一定要精确,不要让内容的宽高超出我们所设置的宽高,IE6下,内容会撑开设置好的高度。

解决方法:给对应的父级加overflow:hidden但是会有部分被隐藏掉,最好是精确计算宽高再设定。

2、在IE6下有元素浮动时,如果宽度需要由内容撑开,就给里边的块元素都加浮动,正常浏览器不用加浮动。

3、在IE6下元素的高度的小于19px的时候,会被当做19px来处理。

解决办法:添加overflow:hidden

HTTPS是严格加密传输,需要全站源码HTTPS链接,不允许调用HTTP普通协议数据,其中包括:JS、CSS、png、gif、jpg 等任何HTTP协议普通资源的存在,如果调用地址栏不会显示小锁图标,超级链接除外。

1、为什么我看不到我的浏览器的地址栏中锁定符号:网页链接

2、https 页面中引入 http 资源的解决方式:网页链接

3、网站存在不安全因素的解决办法:网页链接

4、使用相对Url无缝切换HTTP-HTTPS:网页链接

总结:把网站所有的HTTP抬头的协议全部改成HTTP就可以了,比如这样:网页链接