2014-12-13 26 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