在将静态资源切换到CDN后,谷歌在Chrome+Firefox中映射错误,在Safari中很好:

After switching static resources to CDN, google maps error in Chrome+Firefox, fine in Safari:

本文关键字:映射 Chrome+Firefox 错误 很好 Safari 谷歌 静态 资源 CDN      更新时间:2023-09-26

我只是在寻找任何可以帮助我缩小调试范围的指针。

我的网站在不使用CDN的情况下运行良好。如果我使用CDN(Edgecast,还有我测试过的另一个),那么我嵌入页面中的谷歌地图不会在Chrome和Firefox中显示,但在Safari中显示良好(所有最新版本,无法在IE上测试)。

关闭我的应用程序(社交引擎)中的CDN设置可以纠正它,所以它确实与CDN有关。

如果我在本地机器上保存html源代码,并在本地浏览器中查看它,那么它也可以正常工作。

我的网站有另一个功能,JS幻灯片,它不能很好地工作,遵循相同的模式。当我打开和关闭CDN时,唯一会改变的是JS、CSS和图像文件的位置。

我试过很多东西,没有在控制台中看到任何错误,我只是对这种行为感到困惑。如果有人根据描述的模式有任何进一步调查的建议,我将不胜感激。

如果你想看看Safari中运行良好但Chrome/Firefox中运行不正常的页面,你可以看看http://healthylivingtribes.com/paleo-primal-resource/ovvio。"地图"选项卡应该显示谷歌地图。

非常感谢您的帮助。

最佳,-朱利安

我得到了相同的错误:

Uncaught TypeError: Array.prototype.forEach called on null or undefined at mootools-1.2.5-core-nc.js:81

并找到了一个适合我的解决方案:

在文件mootools-1.2.5-core-nc.js(或代码所在的其他位置,似乎也适用于旧版本)中,替换以下行(mootools-1.2.5-core-nc.js中的#2901):

var rules = sheet.rules || sheet.cssRules;

通过这条线路:

var rules = sheet.rules || sheet.cssRules || [];


显然,sheet.rulessheet.cssRules都不一定正确初始化,所以简单地分配一个空数组作为变量rules的第三个替代方案就可以修复它

出于某种原因,Chrome在这里似乎比通常的嫌疑人更敏感(或更准确)…;)


因此,如果您使用的是压缩版本,请替换此行(好吧,压缩行):

var F=E.rules||E.cssRules;

通过这个:

var F=E.rules||E.cssRules||[];


由于在压缩版本中,内部变量被重命名为较短的值,因此您的变量实际上可能不会像我的情况那样被命名为F,但您会得到这样的想法:)


编辑:由于这似乎是一个实际的错误,我向MooTools Core错误跟踪器报告了它,所以也许他们会在官方版本中修复它(https://github.com/mootools/mootools-core/issues/2345)

嗯,我还没有找到答案,但它与另一个阻止谷歌地图出现的JS有关。

仍然不知道Safari和Chrome之间的区别,但我现在已经隔离了导致这种情况的socialengine插件。

当然,它与CDN相关,在Safari中仍然运行良好,所以如果有人有任何假设,我仍然有兴趣听到:-)

我也遇到了这个错误,并尝试将mootools从1.2.5升级到1.4.5,但错误变为:

Uncaught ReferenceError: Asset is not defined

然后我在这里使用Mootools构建器:http://mootools.net/more/#Assets(选择全部,包括兼容性,无压缩)

幻灯片现在开始播放了。