我正在尝试添加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
你知不知道我为什么会犯这个错误,以及如何解决这个问题?
发布于 2022-05-15 13:54:09
由于不推荐使用addDomListener(),所以可以使用标准的addEventListener()方法,如下所示:
window.addEventListener('load', initializeAutocomplete)
在所有需要的地方以类似的方式替换。
google.maps.event.addDomListener(<OBJECT>,<EVENT>,<FUNCTION>);
至
<OBJECT>.addEventListener(<EVENT>,<FUNCTION>);
发布于 2022-08-07 02:44:22
这并不像“用复制/粘贴替换addDomListener”那么简单。LOL。那就太好了对吧?
还应该注意的是,当您加载Google时,您只需通过URL传递initializeAutocomplete函数,如下所示:
<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地图示例存档)不再起作用了:
google.maps.event.addDomListener( radioButton, 'click', function() {
autocomplete.setTypes( ['establishment'] );
// this causes google.maps.event.addDomListener() is deprecated warning
});
这将永远无法工作,因为没有google.maps.event.addEventListener
()。
google.maps.event.addEventListener( radioButton, 'click', function() {
autocomplete.setTypes( ['establishment'] );
});
// lands you: Uncaught TypeError: google.maps.event.addEventListener is not a function
您需要如下所示的rethink+rewrite:
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中,或者不想这样做,那么请考虑以下几点:
// notworksolutions
google.maps.event.addDomListener(window, 'load', initializeAutocomplete);
google.maps.event.addEventListener(window, 'load', initializeAutocomplete);
// solution that work
window.addEventListener('load', (event) => { initializeAutocomplete(); });
发布于 2022-11-11 22:59:28
这在谷歌地图问题跟踪器标记为固定。修复应该是一个即将发布的版本。
https://stackoverflow.com/questions/72215994
复制相似问题