我的网站需要使用 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/