首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不推荐使用google.maps.event.addDomListener(),而是使用标准的addEventListener()方法: Google自动完成错误

不推荐使用google.maps.event.addDomListener(),而是使用标准的addEventListener()方法: Google自动完成错误
EN

Stack Overflow用户
提问于 2022-05-12 12:56:44
回答 3查看 10K关注 0票数 15

我正在尝试添加Google自动建议,我从开发人员的网站上复制了代码来尝试,但是得到了错误:google.maps.event.addDomListener()被废弃了,使用标准的addEventListener()方法代替。也没有收到任何的位置建议。

https://developers.google.com/maps/documentation/javascript/places-autocomplete

google.maps.event.addDomListener(window, 'load', initializeAutocomplete);

我还添加了脚本<script src="https://maps.googleapis.com/maps/api/jskey=api_key&libraries=places"></script>

我在一个html中成功地实现了相同的功能,但是当我使用单击按钮打开一个弹出窗口(具有位置输入的表单)时,它给了我这个错误。

注意:,我也尝试过addEventListener,但这给了我一个错误:google.maps.event.addEventListener is not a function

你知不知道我为什么会犯这个错误,以及如何解决这个问题?

EN

回答 3

Stack Overflow用户

发布于 2022-05-15 13:54:09

由于不推荐使用addDomListener(),所以可以使用标准的addEventListener()方法,如下所示:

代码语言:javascript
运行
复制
window.addEventListener('load', initializeAutocomplete)

在所有需要的地方以类似的方式替换。

代码语言:javascript
运行
复制
google.maps.event.addDomListener(<OBJECT>,<EVENT>,<FUNCTION>); 

代码语言:javascript
运行
复制
<OBJECT>.addEventListener(<EVENT>,<FUNCTION>);
票数 12
EN

Stack Overflow用户

发布于 2022-08-07 02:44:22

这并不像“用复制/粘贴替换addDomListener”那么简单。LOL。那就太好了对吧?

还应该注意的是,当您加载Google时,您只需通过URL传递initializeAutocomplete函数,如下所示:

代码语言:javascript
运行
复制
<script type='text/javascript' src='https://maps.googleapis.com/maps/api/js?key=YOUR_KEY_HERE&libraries=places&callback=initAutocomplete'></script>

因此,它就像将回调GET var添加到这个url:https://maps.googleapis.com/maps/api/js?key=YOUR_KEY_HERE&callback=initAutocomplete上一样容易。

在您的示例中,只需添加&callback=initAutocomplete = done即可。

句号

让我们检查其他情况----考虑下面的用法。这个(从旧的google地图示例存档)不再起作用了:

代码语言:javascript
运行
复制
 google.maps.event.addDomListener( radioButton, 'click', function() { 
    autocomplete.setTypes( ['establishment'] ); 
  // this causes google.maps.event.addDomListener() is deprecated warning
 });

这将永远无法工作,因为没有google.maps.event.addEventListener ()。

代码语言:javascript
运行
复制
 google.maps.event.addEventListener( radioButton, 'click', function() { 
    autocomplete.setTypes( ['establishment'] ); 
   });

// lands you: Uncaught TypeError: google.maps.event.addEventListener is not a function

您需要如下所示的rethink+rewrite:

代码语言:javascript
运行
复制
document.getElementById(radioButton).addEventListener('click', function(e) {
    autocomplete.setTypes( ['establishment'] ); // yellowstone PARK
    autocomplete.setTypes( ['address'] ); // some address with yellowstone st
    });

现在,这再次按照预期工作,没有google.maps.event.addDomListener() is deprecated错误。

因此,在您的情况下,如果您由于某种原因不能将&callback=initAutocomplete添加到您的URL中,或者不想这样做,那么请考虑以下几点:

代码语言:javascript
运行
复制
// notworksolutions
google.maps.event.addDomListener(window, 'load', initializeAutocomplete);
google.maps.event.addEventListener(window, 'load', initializeAutocomplete);

// solution that work
window.addEventListener('load', (event) => { initializeAutocomplete(); });
票数 1
EN

Stack Overflow用户

发布于 2022-11-11 22:59:28

这在谷歌地图问题跟踪器标记为固定。修复应该是一个即将发布的版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72215994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档