Chrome在什么时候禁用表单元素上的自动填充功能? (Chrome扩展研究)

时间:2014-09-30 04:46:22

标签: javascript google-chrome google-chrome-extension autocomplete

我正在编写一个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中停用自动填充功能?

0 个答案:

没有答案