3

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

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

在我的应用程序(社交引擎)中关闭 CDN 设置可以更正它,因此它确实与 CDN 相关。

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

我的网站还有另一个功能,即 JS 幻灯片,但效果不佳,遵循相同的模式。当我打开和关闭 CDN 时,唯一改变的是 JS、CSS 和图像文件的位置。

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

如果您想查看在 Safari 中运行良好但在 Chrome/Firefox 中无法正常运行的页面,您可以查看http://healthylivingtribes.com/paleo-primal-resource/ovvio。“地图”选项卡应显示谷歌地图。

非常感谢您的帮助。

最好的——朱利安

4

3 回答 3

2

我得到了同样的错误:

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(或您的代码所在的任何其他位置,似乎也适用于旧版本)替换以下行(#2901 in mootools-1.2.5-core-nc.js):

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

通过这一行:

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


显然,既不需要sheet.rules也不sheet.cssRules需要正确初始化,因此只需分配一个空数组作为变量的第三种替代方法即可rules 修复它。

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


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

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

这样:

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


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


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

于 2012-04-05T23:44:47.437 回答
0

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

Uncaught ReferenceError: Asset is not defined

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

...幻灯片现在正在工作。

于 2012-03-09T05:41:21.307 回答
0

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

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

虽然它肯定与 CDN 相关,并且在 Safari 中仍然可以正常工作,所以如果有人有任何假设,我仍然有兴趣听到它们 :-)

于 2012-02-26T11:41:34.950 回答