javascript - Google jspai 加载失败,但仅限客户

标签 javascript google-earth-plugin google-loader

我的网站需要使用 Google 地球插件一段时间(我知道该 API 已被弃用,但我还坚持使用它几个月)。我通过包含 google.com/jsapi 来加载它,然后调用 google.load,如下所示:

    ...
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
        google.load("earth", "1", {"other_params": "sensor=false"});
        google.setOnLoadCallback(function () {
            // call some JavaScript to begin initializing the GE plugin
        });
    </script>
</body>
</html>

这在我们公司防火墙内的多台计算机和多个浏览器上运行良好。它在我的家用计算机和我同事的家用计算机上运行良好。但是,当我的客户尝试加载它时,她收到一条错误消息,指出 google 未在以 google.load(.

开头的行上定义。

当然,全局变量 google 是在文件 www.google.com/jsapi 的开头定义的,因此推测该文件未加载。我最初以为她的公司防火墙阻止了该文件,但当我要求她将“https://www.google.com/jsapi”粘贴到浏览器的地址栏中时,她说立即加载了一个 JavaScript 页面。

浏览器控制台的整个输出是:

Invalid URI. Load of media resource  failed. main.html
ReferenceError: google is not defined main.html:484

我相信无效 URI 业务只是因为我们没有 favicon.ico 文件。

她运行的是 Firefox 35.0.1,尽管她说 IE 也出现了同样的错误(她没有提及 IE 的版本)。

如果不要求她安装 Firebug(我认为这是不可行的),我该如何解决此问题?

最佳答案

我真的不确定这个假设,但是: 您的第一个脚本可能会异步加载吗?然后,对于慢速连接(您的客户),会出现此问题(我知道您没有使用异步标记 - 但也许源可以触发加载异步)。

此处最好的做法是确保您使用的 Google 代码是sync 类型并重新部署。

还有https://bugsnag.com/对您来说可能是一个非常有趣的工具。只需实现 js,您就可以跟踪客户遇到的每个错误。

关于javascript - Google jspai 加载失败,但仅限客户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28243792/

相关文章:

javascript - $scope 应该附加什么方法?

javascript - 无法在 Node.js 中使用 ECDH 私钥签署缓冲区

javascript - "click"和onclick的区别

c# - C# 中的 Google 地球插件

javascript - 谷歌地球问题

Controller 数组中的 Javascript 不起作用

javascript - 处理3d模型上的点击事件

javascript - 为什么 google.load 会导致我的页面变成空白?

Javascript .on ("change"仅在手动更改时有效 [jsFiddle]