我正在编写一个Chrome扩展程序,可以从页面上的表单元素(文本框)中收集信息。话虽如此,我想阻止我的扩展程序收集用户敏感信息。
我的第一个猜测是避免密码字段,这很容易。
接下来要避免禁用autocomplete
的文本框。据我所知,有两种方法可以禁用自动完成功能:
1>在输入本身。
<input type="text" name="n1" id="idInput" autocomplete="Off" />
2 - ;在表单元素上。
<form id="form1" name="form1" method="post" autocomplete="off" action="someurl.com">
所以我目前正在使用以下方法来确定元素是否具有自动完成功能:
//Called from within extension's content script
function isAutocompleteOff(elmt)
{
var ac = elmt.autocomplete;
if(ac)
{
if(ac.toLowerCase() == 'off')
return true;
}
//Try form element itself
ac = elmt.form.autocomplete;
if(ac)
{
if(ac.toLowerCase() == 'off')
return true;
}
return false;
}
var elmt = document.getElementById("idInput");
if(!isAutocompleteOff(elmt))
{
//Use this control
}
上面的方法似乎有效,除了在我测试它的这个特定页面上,当表单出现以填写信用卡信息时,输入字段上没有autocomplete="off"
。这是来自Chrome调试器:
<input type="text" placeholder="Card Number" maxlength="16"
name="cc_number" id="cc_number" class="cc_number cc_number_required">
表单元素也不是:
<form name="aspnetForm" method="post" action="https://pageurl.com"
id="aspnetForm" _lpchecked="1">
并且我的上述方法无效,但Chrome仍未显示该文本框的自动填充选项(尽管它在同一页面上的其他文本框中也是如此。)
因此我的问题。 网页如何在Chrome中停用自动填充功能?