Respond.js无法在本地工作 - 支持IE8中的媒体查询

时间:2013-08-31 03:51:33

标签: internet-explorer-8 localhost media-queries twitter-bootstrap-3 respond.js

我正在使用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;}

2 个答案:

答案 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文件,则无效。