2014-12-13 68 views
0

如果从CDN加载的jQuery与...包括从CDN库和本地浏览

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/... 

...然后将被接受,如果网站是HTTPS(Blocked loading mixed active content "http://ajax.googleapis.com/ajax/...)。


的解决方案似乎是:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/... 

Indeeed如果网站是HTTP或HTTPS它将工作。 但是,当在本地处理文件(即浏览我的硬盘驱动器上的文件),然后jQuery不加载此解决方案。


这对我来说重要的是,谁的人会下载my GitHub project将能够进行本地测试。

如何正确包含jQuery与CDN,并能够在本地浏览HTML文件?

+1

为测试目的设置本地Web服务器非常简单。相反。 – Tomalak 2014-12-13 09:52:32

+0

@Tomalak否,不得不安装一个web服务器来测试一个简单的.js + .html页面是一个矫枉过正。我使用Windows,没有用于测试客户端库的本地Web服务器。如果我真的需要服务器,是的,我连接另一台机器等。但我不喜欢为两个简单文件(.html + .js)需要Web服务器的想法。 – Basj 2014-12-13 09:55:14

+0

如果您有Windows,那么您预先安装了IIS,您只需要从Windows功能列表中启用它。这是一个5键操作,你可以在几分钟内启动并运行。我看不出问题在哪里。 – Tomalak 2014-12-13 10:13:26

回答

-1

从HTML5的样板,你的CDN脚本之后添加:

<script>window.jQuery || document.write('<script src="/path/to/local/jquery.js"><\/script>')</script> 
2

一般情况下,使用file://网址测试网页是一个坏主意,我不会刻意去支持它。相反,使用本地Web服务器进行测试更有意义。

但是,如果你在支持它的意图,你需要做location.protocol检查:

<script> 
(function() { 
    var protocol = location.protocol === "file:" ? "http:" : location.protocol; 
    document.write('<script src="' + protocol + '//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"><\/script>'); 
})(); 
</script> 

或者,如果你正在做一个XHTML页面(或只是不喜欢document.write) :

<script> 
(function() { 
    var protocol = location.protocol === "file:" ? "http:" : location.protocol; 
    var script = document.createElement('script'); 
    script.src = protocol + '//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'; 
    document.getElementsByTagName("script")[0].parentNode.appendChild(script); 
})(); 
</script> 

使用该页面的协议(http:https:,等等),如果它不是file:,并使用http:如果是file:

+0

谢谢@ T.J.Crowder的回答。我也可以一直使用'https://ajax.googleapis.com/...'吗?它似乎工作1)从本地浏览('file://'),2)从http网站,3)从https网站。 – Basj 2014-12-13 12:14:19

+0

@Basj:一般来说,建议是尽可能匹配页面的协议(因此协议相对URL的流行)。但是因为你不能用'file:'协议做到这一点,所以你必须玩上面那样的游戏。 – 2014-12-13 12:17:59

+0

谢谢。你觉得http://stackoverflow.com/a/27458680/1422096(我不确定,会很高兴得到你的建议) – Basj 2014-12-13 12:19:14

1

我使用HTTPS尝试了所有的时间:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/... 

看来工作:

  1. 从HTML页面(file://

  2. 的本地浏览从HTTP浏览HTML页面

  3. from https br浏览HTML页面

+0

可行的解决方案。 +1 – Tomalak 2014-12-13 12:30:01