angularjs 如何防止LastPass(chrome扩展)自动填充输入字段

e7arh2l6  于 2023-01-04  发布在  Angular
关注(0)|答案(5)|浏览(296)

我想阻止LastPass在我的网站上填写输入字段。我使用AngularJS和HTML5,扩展自动填写下面的输入字段。这个字段是我的页面内的搜索字段;它不是登录页面。

<input id="search-publishers-box" type="text" placeholder="Search Publishers" data-ng-model="publishersSearchQuery.name" class="search-field-text" autocomplete="off"/>

我可以做什么来阻止LastPass执行自动填充?我尝试过更改placeholdermodel、添加autocomplete="off"以及更改输入字段的id
对我来说都没用。

i7uaboj4

i7uaboj41#

把这个属性放在你不希望LP改变的输入元素中。

data-lpignore="true"
q3aa0525

q3aa05252#

尝试使用type=“search”代替..这是无效类型...将回退到类型text...
Stop LastPass filling out a form

46qrfjad

46qrfjad3#

下面是我对这个问题的看法,以及我通常是如何解决自动填充问题的(是的,它们很难理解,但确实会发生)--我通常会观察字段的变化。因为您使用的是AngularJS,所以使用$watch非常容易,或者如果您使用的是jQuery,则使用.change即可
然后,每当有一个以上的字符在同一时间的变化,你可以假设它的自动填充,而不是有人键入。
请注意,如果有人决定粘贴到字段中,此操作将中断。
另一种解决方法是仅当存在keypress时才允许更改字段。

编辑Here's a fiddle

d6kp6zgx

d6kp6zgx4#

对我来说,@nawlbergs之前的回答帮助解决了这个问题。data-lpignore="true"不再有帮助了(可能他们已经更新了他们的逻辑,因为这个解决方案也不再出现在他们的FAQ中)。
LastPass似乎只能使用type="text"type="password"输入来填充密码(这是唯一可以在LastPass条目的表单字段中配置的输入类型)。每当您使用其他有效的类型(不像@nawlbergs建议的那样),但不是"text"时。
也就是说,type="search"和其他可能有效的type值都有帮助,只是type="search"具有类似text的行为,可以在任何地方自由使用:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search

7jmck4yq

7jmck4yq5#

用这个
全球:

[data-lastpass-icon-root] {
display: none !important;
}

特定容器:

#div_container_to_disable_lastpass [data-lastpass-icon-root] {
display: none !important;
}

相关问题