IE仅加载远程托管的.js文件

时间:2014-02-07 01:53:13

标签: javascript jquery internet-explorer highcharts local

我正在使用他们的演示代码使用highcharts测试一个非常简单的应用程序。

当我在FF中加载演示时,它可以工作。当我在IE中加载演示时它不会,除非我使用远程托管的jquery.min.js文件和highcharts.js文件。

我在我的域上保存了jquery文件和highcharts.js。它们都能在FF中正确使用。然而,当我在IE中加载页面时,我没有输出,除非我使用其他输出。

我服务器上的文件是相同的。显然工作(在FF中)但由于某些原因IE不喜欢它们。

澄清一下,当我这样做时:

<script src="http://www.mydomain.com/jquery.js"></script>
<script src="http://www.mydomain.com/highcharts.hs"></script>

它适用于FF但不适用于IE。

当我这样做时:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>

它适用于FF和IE。

我已经将它们一次一个地输出,如果它们都是后一个版本,它只适用于IE。

为什么IE不想运行.js文件,如果我在自己的域上加载它们而不是加载托管在其他地方的文件?

2 个答案:

答案 0 :(得分:1)

首先,你的highcharts JavaScript文件的扩展名是错误的。它应该是/highcharts.js而不是/highcharts.**hs**

对于您自己的域,不需要绝对URL。

<script src="/jquery.js"></script>
<script src="/highcharts.js"></script>

确保您下载了googleapis.com和highcharts的脚本内容。

如果您在本地环境中进行测试,则http://www.mydoman.com/毫无价值。

你没有脚本文件夹吗?如果是这样,src URL看起来像

<script src="/scripts/jquery.js"></script>
<script src="/scripts/highcharts.js"></script>

答案 1 :(得分:0)

我发现了什么问题。

我已将以下代码添加到.htaccess中,以防止其他网站使用我的.js:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain\.com [NC]
RewriteRule \.(js|css)$ - [F,NC,L]

此代码阻止我自己的.js在IE中使用,但不在FF中使用。不同的浏览器会以不同的方式处理文件吗?

当我从.htaccess文件中删除该代码时,该网站在FF和IE中按预期加载。

这也解释了为什么我的.css不起作用,除非我从外部源加载它(我使用的是具有自己的css的js手风琴)。我从这个网站上的另一篇文章中获得了该代码并在FF中进行了测试,并假设它也适用于IE。现在我需要获得IE友好的新.htaccess代码。