我正在使用 Google Maps Javascript v3 在 HTML 输入字段上设置自动完成功能,如下所示:
https://i.stack.imgur.com/sbBKv.png https://i.stack.imgur.com/sbBKv.png-(不带自动填充)
我遇到的问题是 Chrome 的自动填充功能掩盖了地图自动完成功能,如下所示:
https://i.stack.imgur.com/P0k3g.png https://i.stack.imgur.com/P0k3g.png-(带自动填充)
几个月前我在网上找到了一个解决方案(参考:禁用 Chrome 自动填充 https://stackoverflow.com/questions/15738259/disabling-chrome-autofill),但是这个解决方案似乎不再有任何作用了。
<input type="text" name="address" id="address_fake" autocomplete="off" style="display:none">
<input type="text" name="address" id="address" autocomplete="off" placeholder="Address" />
有什么方法可以阻止 Chrome 的自动填充显示在 Google 地图自动完成列表的顶部吗?
EDIT: 停止 Google Chrome 自动填充输入 https://stackoverflow.com/questions/18531437/stop-google-chrome-auto-fill-the-input没有为我当前的问题提供解决方案。问题在于输入字段上的 Chrome 自动填充下拉菜单,而不是自动填充值的输入字段。
以上答案都不适合我(Chrome 64.0.3282.186,x64 windows)。
TL;DR:Google 地图代码正在更改autocomplete
归因于off
,所以即使你将其设置为new-password
,您仍然会得到自动填充。我使用的技巧是监听该属性的突变,然后覆盖它。注意:调用 Google 地图后仅更改属性是行不通的。
在初始化 Google 地图自动完成之前设置 MutationObserver,立即停止监听突变,然后将属性设置为new-password
.
var autocompleteInput = document.getElementById("id-of-element");
var observerHack = new MutationObserver(function() {
observerHack.disconnect();
$("#id-of-element").attr("autocomplete", "new-password");
});
observerHack.observe(autocompleteInput, {
attributes: true,
attributeFilter: ['autocomplete']
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)