无法查看此样式表,因为它的源页面不在同一个域中

QQ截图20130919204720

给同学做一个东西,他说IE下有问题,让我给改,但是部分页面不加载CSS,出现了这样的问题,然后我百度了一下,查了资料。

原因是这样的:
这是因为IE自从IE9开始,会对网页的MIME类型进行验证,如果MIME类型不正确的话,就不会加载相应的样式表或者JS文件,这也是出于安全的考虑。造成IE9以上浏览器无法加载CSS样式表的,有几个可能的原因,一个可能是你的CSS样式引用的书写方式不正确,导致在IE9和IE10下面无法通过MIME的检查,如果是这个原因,在代码里面修改一下css样式引用的方法就行了。另外一个可能的原因,可能是你在电脑里面安装了代理软件或者其他什么与代理相关的软件,如wallproxy之类的,这一类软件可能会在打开本地HTML文件时修改mime类型,把type替换为stain之类,这个没有什么特别好的解决方法,要么卸载这些软件,要么重新安装一下试试。如果你是自己配置服务器后出现了这个问题,那么就可能是第三个原因了,在服务器端没有配置css的mime类型,这个对应的在IIS或者apache里面添加一下css的type就行了。

摘自别的地方,另外的一个更靠谱答案:
今天同事让我帮助解决一问题,现象是一本地html静态页,两个不同的文件有几乎完全相近的代码,在IE下显示结果却完全不同,原因应该是其中一个页面没有正确加载css引起的,FireFox下却正常。经过各种排查,发现在IE10的开发者工具的css一栏中,有一行提示"无法查看样式表,因为它的源与页面不在同一个域中",推测应该是css读取的路径有问题,但是另外一个路径也是相同的却显示正常,手动加前缀"./"也无效;通过samba拷贝到另外一台机器上,显示又恢复了正常。
后来突然想起Internet Explorer的安全机制,从网络下载/保存的文件,会在其NTFS数据流附加一个标记,限制其访问,这个标记同样会导致chm打开时无法正确显示,立即右键“属性”查看,果然文件有“锁定”标记,按下右边的解除按钮,显示立马恢复正常。

技术相关 2013-09-19 ,
上一篇: 下一篇:

评论已关闭。