您已在此页面上多次包含 Google Maps JavaScript API。这可能会导致意外错误。当使用 $.getScript() 调用时

2023-12-19

序言: 我已经将 Google 地图和地理定位实现为独立的小部件,现在用户可以在他拥有的页面中添加任意数量的小部件。 我正在使用 $.getScript(URl,callback) 加载该 URL 的脚本以使其正常工作。

问题 : 当用户在同一页面中多次添加两个小部件或同一小部件​​时,检查 windows.google 会失败,并且 $.getScript(url, callback) 会执行两次。因此我从 Google 脚本中收到错误

您已多次包含 Google Maps JavaScript API 这一页。这可能会导致意外错误。当调用时使用 $.getScript()

if(window.google !== undefined && window.google !== null) {
    onScriptLoad(null, null, 200);
} else {
    $.getScript(googleUrl, onScriptLoad);
}

上面的行存在于两个小部件中,并且两个小部件彼此独立。它总是进入两个函数的 else 块。 期待这里的一些工作,比如使用 javascript 或 jquery 同步加载脚本


当你的代码在第一个运行时widget,它会启动 google API 的加载,但是window.google在脚本完成加载之前不会创建。这是异步

现在,第二个widget测试如果window.google存在,但是这仍然发生在 google API 加载之前,因此,它也认为需要加载 google API

所以,而不是这个:

if(window.google !== undefined && window.google !== null) {
    onScriptLoad(null, null, 200);
} else {
    $.getScript(googleUrl, onScriptLoad);
}

try

window.loadingGoogleApi = window.loadingGoogleApi || $.getScript(googleUrl);
window.loadingGoogleApi.then(onScriptLoad);

the loadingGoogleApi can be any您选择的名称(只是不要使用会被其他代码破坏的名称)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您已在此页面上多次包含 Google Maps JavaScript API。这可能会导致意外错误。当使用 $.getScript() 调用时 的相关文章