php - Chrome : Google Maps API JS Loading Issue with https

标签 php javascript google-chrome https sugarcrm

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

SugarCRM 网址示例:

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

当前的 Google map API 调用:

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

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

此外,我看到有人使用//这应该让浏览器决定协议(protocol)?与所有最新的浏览器兼容吗?例如 Firefox、IE、Chrome 和 Safari?

最佳答案

我相信几乎所有最新的主流浏览器(可能 IE6 除外)都支持使用协议(protocol)相关 URL(即//),所以我认为它是绝对安全的。您可以在这里从 Paul Irish 那里阅读更多关于它们的信息:http://paulirish.com/2010/the-protocol-relative-url/

如果你确实想自己做检查,这是一个相当简单的 javascript 检查,类似这样但显然是针对 map 而不是 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 曾经对他们的 tweet 按钮进行过类似上面的检查,但现在也使用协议(protocol)相关 url。 HTML5 Boilerplate模板也使用 then,所以如果您决定使用它们,我会说您的公司很好。

关于php - Chrome : Google Maps API JS Loading Issue with https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15938463/

相关文章:

php - 同时使用 PDO 和 mysqli - 有碰撞风险吗?

php - 我安装了 Apache 并向其中添加了 PHP,而不是安装了 MySql,但 PHPMYADMIN 无法正常工作?

php - 将页面从 html 转换为 php 后的位置问题

javascript - 何时使用或不使用 toLocale 方法?

javascript - iframe设计模式下光标移动问题

php - 如何检查数组的某个部分是否存在于另一个数组中?

javascript - 如何使用jquery添加开始html标签?

javascript - 选中的复选框不适用于扩展 chrome

javascript - 仅当我在 Chrome 上缓存刷新时,网站才能完全运行,在其他浏览器上运行良好

javascript - 延长 Slider Pro 幻灯片的幻灯片持续时间