2013-04-10 243 views
1

我有一個開源的軟件包,我使用過Google Map API的SugarCRM。用戶報告說Chrome瀏覽器存在一個錯誤(https加載問題)。使用https協議定義SugarCRM URL並且Maps API URL爲http時會發生此問題。由於這是一個已安裝的軟件包,因此它可能與http或https協議一起使用;這取決於它的安裝位置。Chrome瀏覽器:谷歌地圖API JS加載問題https:

例SugarCRM的網址:

https://www.mydomain.com/index.php 

目前谷歌地圖API調用:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 

我考慮乾脆將其更改爲HTTPS,但將是修復問題?我應該寫一些邏輯來檢查網站的URL(來自SugarCRM配置)http或https並使其匹配協議?其他外部JS文件如jQuery的呢?

此外,我見過有人使用//應該讓瀏覽器決定使用哪種協議?是否與所有最新的瀏覽器兼容;如Firefox,IE,Chrome & Safari?

回答

2

使用協議相對URL(即//)我相信在幾乎所有最新的主流瀏覽器(除了可能的IE6)都支持,所以我認爲它是完全安全的。你可以閱讀更多關於他們從保羅愛爾蘭位置:http://paulirish.com/2010/the-protocol-relative-url/

如果你確實想要做一個檢查自己這是在JavaScript中一個相當簡單的檢查,這樣的事情,但顯然對地圖代替GA:

ga.src = ('https:' == location.protocol ? '//ssl' : '//www') + '.google-analytics.com/ga.js'; 

(如這裏找到:http://mathiasbynens.be/notes/async-analytics-snippet#protocol-check

請注意,如果你在谷歌地圖API第2版,我認爲你必須做這樣的URL是爲SSL不同,但它看起來像你在當前版本應該沒問題。

我相信twitter曾經有一個類似於上面的按鈕用於他們的推文按鈕,但現在也使用協議相關的URL。 HTML5 Boilerplate模板也會使用,所以如果你決定使用它們,我會說你是一個很好的公司。