【问题标题】:Chrome: Google Maps API JS Loading Issue with httpsChrome:使用 https 的 Google Maps API JS 加载问题
【发布时间】:2013-04-03 00:56:09
【问题描述】:

我为 SugarCRM 开发了一个使用 Google Map API 的开源包。用户报告说 Chrome 浏览器存在错误(https 加载问题)。当使用 https 协议定义 SugarCRM URL 并且 Maps API URL 为 http 时,会出现此问题。因为这是一个已安装的包,它可以与 http 或 https 协议一起使用;这取决于它的安装位置。

SugarCRM 网址示例:

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

当前的 Google Maps API 调用:

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

我正在考虑将其简单地更改为 https,但这会解决问题吗?我是否应该编写一些逻辑来检查站点的 URL(来自 SugarCRM 配置)的 http 或 https 并使其匹配协议? jquery等其他外部JS文件呢?

另外,我看到人们使用 // 应该让浏览器决定协议?是否与所有最新的浏览器兼容?比如火狐、IE、Chrome和Safari?

【问题讨论】:

    标签: php javascript google-chrome https sugarcrm


    【解决方案1】:

    我相信几乎所有最近的主流浏览器(可能除了 IE6)都支持使用协议相对 URL(即 //),所以我会说它非常安全。你可以在这里阅读更多关于他们的信息: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

    请注意,如果您使用的是 google maps API v2,我认为您必须这样做,因为 ssl 的 url 不同,但看起来您使用的是当前版本,所以应该没问题。

    我相信 twitter 曾经对他们的推文按钮进行类似上面的检查,但现在也使用协议相关 url。 HTML5 Boilerplate 模板也使用 then,所以如果你决定使用它们,我会说你是很好的伙伴。

    【讨论】:

      猜你喜欢
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      • 2020-08-18
      • 2013-03-25
      相关资源
      最近更新 更多