【问题标题】:How to I disable form autofill in all browsers?如何在所有浏览器中禁用表单自动填充?
【发布时间】:2015-11-24 04:27:31
【问题描述】:

我查看了posts 中的number,所有这些都指向了使用自动完成属性的不同方式,但我还没有在我的所有浏览器中进行这项工作。我见过一些非常丑陋的变通方法,例如 this,但我正在寻找一种干净且简单的方法。

在所有(或至少,大多数)常见浏览器上禁用文本字段自动填充的好方法是什么?

【问题讨论】:

    标签: html google-chrome internet-explorer firefox autocomplete


    【解决方案1】:

    以下代码将禁用 FF、IE 和 Chrome 中的自动完成功能。

    <script>
        $(document).ready(function () {
        // IE & FF
        $('input').attr('autocomplete', 'off');
        // Chrome
        if ( $.browser.webkit ) {
            $('input').attr('autocomplete', 'new-password');
        }});
    </script>
    

    【讨论】:

      【解决方案2】:

      在表单和输入字段(使用“off”值)上启用自动完成功能,以便那些遵守规则的守法浏览器始终是一个好的开始 - 也适用于有一天“其他”这种不太可能发生的事件“浏览器……可能会觉得合规性并不全是坏事。

      在那一天之前需要破解。我注意到 Chrome 至少在三个地方寻找匹配的数据:标签(上下文)、名称和占位符。如果输入字段中缺少名称字段,它将在标签和占位符中查找,但如果名称字段存在,它将仅在名称和占位符中查找。

      此脚本在必须防止自动完成的输入字段上使用 Bootstrap 中的“表单控制”类。使用您喜欢的任何其他类或过滤器。还假设占位符正在使用中 - 如果没有,只需删除该部分。

      $(document).ready(function() {
         // Begin
         var this_obj = null, this_placeholder = null, this_name = null;
         $(".form-control").focus(function() {
            this_obj = this;
            this_name = $(this).prop("name");
            this_placeholder = $(this).attr("placeholder");
            $(this).prop("name", "NaN" + Math.random());
            $(this).attr("placeholder", "...");
         }).blur(function() {
            $(this_obj).prop("name", this_name);
            $(This_obj).attr("placeholder", this_placeholder);
         });
         // End
      }); 
      

      注意:将占位符留空实际上可能会无意中触发自动完成功能,因为空分配显然会被忽略。

      this_name 和 this_placeholder 这两个变量可以避免,因为它们可以通过 this_obj 访问,但为了可读性和清晰性,我喜欢保留它们。

      脚本是 erm.. 相当不显眼,因为它会自行清理,并且只需要一个匹配的类或属性。

      它适用于版本 68.0.3440.106(官方版本)(64 位)、IE11 11.228.17134.0 和 Firefox 61.0.2(64 位)。抱歉,没有测试过其他人。

      【讨论】:

        【解决方案3】:

        为所有输入标签添加一个类,假设no-complete

        并在你的 js 文件中添加以下代码:

        setTimeout(function (){
           $('.no-complete').val ("");
        },1);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-02-25
          • 2019-10-03
          • 2012-02-01
          • 2017-01-10
          • 2013-04-04
          • 1970-01-01
          • 1970-01-01
          • 2011-05-30
          相关资源
          最近更新 更多