【问题标题】:Can I use CSS to override the disabling of autocomplete for a form, if so, how?我可以使用 CSS 来覆盖禁用表单的自动完成功能,如果可以,如何?
【发布时间】:2011-12-18 20:46:21
【问题描述】:

我正在尝试使用 chrome 扩展程序 Stylish 重新启用已禁用的表单的自动完成功能。

具体来说,表单通过指定autocomplete="off" 禁用它,我希望它重新启用。

我试过用这个:

form { autocomplete: on;}

以及它的变体,但它不起作用。我不确定这是否是您可以通过 CSS 覆盖的属性,更不用说如何实现了。

【问题讨论】:

    标签: css forms browser autocomplete stylish


    【解决方案1】:

    CSS 会影响 style 属性中的内容,以及一些旧属性(长度/单元格填充/颜色等)。自动完成不是其中之一。 JS 是正确的方法。
    大概是这样的:

    documnet.getElementById('element_id').autocomplete='on';
    

    【讨论】:

    • 自动完成是一个新属性:w3schools.com/html5/html5_form_attributes.asp
    • 另外,如果我不知道元素 id 怎么办?
    • 它是一个表单属性,而不是 CSS 属性。至于第二条评论,如果我理解你的目的,那么只需编写一个捕获页面中所有表单的 JS,使用getElementsByTagName('form') or window.forms`(我认为,检查一下)。
    【解决方案2】:

    我安装了Firebug,并用它来计算语法,然后为Tampermonkey 编写了一个粗略的脚本(是的,这些是针对不同的浏览器的。我希望它可以在 Chrome 中运行,但知道 firebug 会是一个快速找出和测试语法的方法。):

    // ==UserScript==
    // @name       Autocomplete Enabler
    // @version    0.1
    // @description  enter something useful
    // @include    http://*/*
    // @include    https://*/*
    // @copyright  2011+, You
    // ==/UserScript==
    var formcount=0;
    var i=0;
    
    for (i=0;i<=formcount;i++)
    {
        document.getElementsByTagName('form')[i].setAttribute('autocomplete','on');
    }
    

    至少对我的银行网站有效。如果我愿意,我会保存表单信息!

    【讨论】:

      【解决方案3】:

      您可以写一个userscript 来做到这一点。

      【讨论】:

      • 但这仍然是解决手头问题的方法。另外...您的解决方案是用户脚本。什么给了?
      猜你喜欢
      • 2017-07-21
      • 1970-01-01
      • 2017-07-10
      • 2011-04-13
      • 1970-01-01
      • 2018-10-25
      • 2012-05-29
      • 2013-03-03
      • 1970-01-01
      相关资源
      最近更新 更多