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

6

我正在使用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个回答

9
根据Respond.js文档,由于使用了xmlHttpRequest, 一些浏览器可能不允许在file:// urls上运行此脚本,出于安全限制。请在Web服务器上运行。具体来说,“Respond.js使用Ajax重新请求CSS文件并解析文本响应”,这就是IE的本地安全策略阻止您的原因。其他用户建议尝试更改IE中的安全设置, 但我无法确认该解决方案是否可行,因为我的IE8副本不允许我更改这些设置。另外,为了避免麻烦,我已经测试并确认在jQuery中使用ajaxSetup()方法将“isLocal”属性设置为“true”无法克服IE中的本地限制。

6

我刚刚成功让respond.js在IE8上运行,以支持媒体查询,通过在本地主机上运行。如果只是打开HTML文件,是无法帮助的。


1
我实际上在头部使用绝对链接链接到一个respond.js文件,该文件驻留在别人的Web服务器上,但是当本地查看站点时仍然会出现“访问被拒绝”的错误。这不是一种无需本地Web服务器即可使其正常工作的解决方法吗? - redshift
嗯,我不太确定这是否是一个解决办法。我只是尝试在本地主机上运行,然后它开始工作了。 - whyAto8
这对我不起作用——在本地主机上或者使用远程脚本时,访问被拒绝。 - jimiayler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接