我可以仅针对本地主机禁用Google Chrome自动填充吗?


21

我是一名开发人员,让Chrome在我在本地计算机上运行的一个网站上以表格形式建议我的所有个人地址信息,这非常令人讨厌。是否可以在本地主机,域或IP地址上禁用自动填充?我在高级设置中没有看到任何内容。


尽管“作为开发人员”,但您是否希望在本地测试服务器上获得与现场站点相同的体验?
MrWhite

4
如果我想测试浏览器特定的东西,例如自动填充,则可以在测试服务器上进行。
Gromer 2012年

Answers:


8

最近,我回答了另一个与自定义Chrome功能相同的要求的问题(也来自@Paul)。

注意:此解决方案使您可以阻止特定的IP地址或IP列表,而不必在项目中加载任何其他库并且没有其他脚本。实际上,您可能已经阻止了所有Javascript功能,但是控件“ noautofill”跟随操作进行,避免了与其他库的冲突,还使您真正了解了使用费和渲染时间,这可以节省调试时间今天,在不同的Web项目上。

创建使用Chrome API的“匹配过滤器主机”的Chrome扩展程序,然后过滤您的自定义IP hostnamehost。然后将 所有“输入”和“表单”标签的属性autocomplete设置off为。

我们继续执行以下步骤:

  • 创建一个名为ex的新文件夹。不自动填充

  • 在我们的新文件夹中创建一个名为manifest.json的新文件,并在其中添加以下代码:


{
  "name": "No Autofill",
  "version": "1.0",
  "manifest_version": 2,
  "description": "No Autofill.",  
  "content_scripts": [ {
      "all_frames": true,
      "exclude_globs": [  ],
      "include_globs": [ "*" ],  
      "js": [ "script.js" ],      
      "matches": [   
                   "http://192.168.1.100/",
                   "http://127.0.0.1/",
                   "http://10.0.1.100/",
                   "http://localhost/",
                   "http://wp.local/",
                   "http://192.168.1.100/*",
                   "http://127.0.0.1/*",
                   "http://10.0.1.100/*",
                   "http://localhost/*",
                   "http://wp.local/*"                   
                    ],
      "run_at": "document_start"
   } ],
  "permissions": [ "tabs", "http://*/", "https://*/", "https://*/*", "http://*/*", "contextMenus" ]

}
  • 在我们的新文件夹中,创建一个名为script.js的新文件,并将此代码添加到其中:


(function(){    
    chrome.extension.sendRequest({
        autofill:'off'
    },function(){       
        var inputnodes = document.getElementsByTagName('input');    
        for(var i=0;i<inputnodes.length;i++){       
            inputnodes[i].setAttribute('autocomplete','off');
        }       
        var formnodes = document.getElementsByTagName("form");    
        for(var i=0;i<formnodes.length;i++){                    
            formnodes[i].setAttribute('autocomplete','off');
        }       
  });
})();
  • 我们转到Chrome的菜单»设置»扩展程序

  • 现在,我们点击按钮“加载解压的扩展程序”

  • 最后,我们标记文件夹,然后单击打开按钮。

结果如下:

不自动填充

该系统非常简单,您可以使用自己的控制代码自定义文件script.js。将来,您可能会添加其他脚本,CSS,配置页面等。请记住,每次在文件script.js中进行更改时,都应使用来重新加载插件 CtrlR

另外,您还可以获得有关如何创建Chrome扩展程序更为详尽的指南


请不要过度使用格式。请记住,有时候少即是多。我修改了您的帖子,删除了不需要的粗体,斜体和引号。
slhck

1
没问题,只是未来的秘诀:)
slhck

1
我最喜欢这种解决方案,谢谢!不是必须管理多个配置文件(可以正常工作)的忠实拥护者,只是不是我正在寻找的解决方案。这使事情对我来说更加简化。感谢大家!
Gromer 2013年

1
不错的解决方案!我认为您可能会错过第二个10.0.1.100上的通配符吗?
Paul

哇!那注意的眼睛:)
RTOSkit 2013年

9

有关使用第二个配置文件或安装第二个版本的Chrome的其他答案应该可以正常工作。我只是为了提供另一种选择而采取不同的角度,而不是因为我认为这是一种更好的方法。


在本地开发网站时,只需包含jQuery库和带有以下代码的jQuery脚本:

$(document).ready(function() {
    $(":input").attr("autocomplete","off");
});

这将关闭网页上所有输入的自动填充。与服务器端包含文件(在头部)结合使用,意味着在测试过程中添加该文件并将其删除以用于整个网站的生产非常容易。


1
1+您启发了我,这是我的第二个解决方案。
RTOSkit 2013年

1
效果很好,我想补充一下,如果可以检查设置以告知网站正在运行的环境的语句,则可以将此代码放在服务器端。以我@if (Web.Core.Common.Settings.Environment == Web.Core.Common.Environments.Local) { @Html.Raw("$(':input').attr('autocomplete','off');"); }
为例,

2

不幸的是,谷歌浏览器没有针对每个站点的自动填充过滤选项。

一种替代方法是使用Lastpass Chrome扩展程序,您可以在其中确定每个站点要记住的字段。

另一种选择是通过创建新的用户配置文件Chrome设置->用户->添加新用户或安装不同版本的chrome(Chrome稳定版/ Beta /开发版,Chrome CanaryChromium)。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.