我正在使用bootstrap3模板编写一个html页面并在其中包含respond.js,但是当我在IE8上运行它时,它在控制台中给出了错误“访问被拒绝”。 我正在使用它来使IE8支持媒体查询。我在论坛上尝试了很多东西,但没有运气。 respond.js是在本地工作还是我们需要在localhost / web服务器上运行?
Respond.js链接 - https://github.com/scottjehl/Respond
HTML :
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="css/main.css" rel="stylesheet" media="screen">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="js/html5shiv.js"></script>
<script src="js/respond.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<h1>Hello, world!</h1>
<div class="main-cont">
</div>
</div>
<script src="js/jquery-1.10.2.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
CSS - main.css
.main-cont {background:#2d3a42; height:100px;}
答案 0 :(得分:9)
根据Respond.js Docs ...
“由于安全限制,某些浏览器可能不允许此脚本在file:// urls上运行(因为它使用xmlHttpRequest)。在Web服务器上运行它。”
具体来说,“Respond.js使用Ajax重新请求CSS文件并解析文本响应”,这是IE的本地安全策略阻止你的地方。其他用户在其他地方建议changing the security settings in IE,但我无法确认该解决方案,因为我的IE8副本不允许我更改这些设置。
哦,为了省去麻烦,我已经测试并确认在jQuery中使用ajaxSetup()方法将“isLocal”属性设置为“true”将不会克服IE中的本地限制。
答案 1 :(得分:6)
我设法通过在localhost上运行,使IE8上的respond.js运行以获得媒体查询支持。如果仅打开html文件,则无效。