禁用Safari 7.0.2密钥链密码保存
Disable Safari 7.0.2 keychain password save
如何禁用safari从使用html或javascript保存用户/通过表单?
我有这个问题,提出了safari 7.0.2在那里你可以保存一个用户/传递到一个钥匙链,当你去到相同的形式,它会自动覆盖这些字段?我个人认为这是可怕的行为。我不认为字段应该被覆盖。
我已经创建了一个独立的版本,您可以在这里演示这个问题。http://dev.davidsalazar.com/issues/safari-autofill/
复制步骤(确保使用最新的safari 7.0.2)
- 类型和用户/通行证单击保存。它应该提示您保存到钥匙扣,接受保存。
- 现在点击链接加载随机数据,你会注意到safari现在会用你以前保存的字段覆盖这些字段。
解决方法:创建另一个(假的)密码字段,Safari可能会被它混淆-在这种情况下自动填充将被"禁用"
在Safari 7.0.2和7.0.3中测试
demo(带红色假密码):http://js.pejsa.info/~jam/safari-autofill/
<form method="post" autocomplete="off">
<input type="text" name="username" id="username" value="abc" />
<input type="password" name="password" id="password" value="def" />
<input type="submit" name="submit_btn" value="Save" />
<input type="password" id="fakePassword"
style="border:0;width:10px;height:10px;background-color:red;" />
</form>
由于所有浏览器的新行为,这是不可能的- autocomplete="off"现在被忽略
详情见http://raesene.github.io/blog/2014/04/17/changing-times-the-end-of-autocomplete-equals-off/
我每天为我的项目搜索这个问题。最后通过下面的插件找到了解决方案。
这个插件的工作结构是这样的。它得到你的输入并克隆它。使用此克隆并创建相同的输入属性,并克隆另一个隐藏输入。然后删除原始输入,并将隐藏的和克隆的输入放在相同的位置。
这是……的原因。现代浏览器(有钥匙链)控制输入(类型密码)时,页面加载和映射到DOM。页面加载后,插件获取输入并克隆并删除原始输入。该操作改变了DOM映射。因此,当页面重定向时,浏览器无法访问此控件。所以不建议你保存密码。
你可以使用这个插件来解决这个问题。
指出:
- 如果您像我一样使用其他插件。例如用于密码安全输入的jquery-keyboard插件。你应该修改你的initkeyboard方法。因为键盘控制你的输入和init在这个输入附近。你可以像下面这样修改这个init方法
init keyboard change
之前var _inputwidth = $(elm).parent().find('input').width();
后Var _inputwidth = $(elm).parent().find('input[type=text],input[type=password]').width();
因为插件输出像这样
<input type="hidden" id="txtPass" name="txtPass" spellcheck="false" autocomplete="off">
<input type="text" id="txtPass" name="txtPass" spellcheck="false" autocomplete="off">
- 如果您有任何按键或按键事件初始化此输入将此代码后插件初始化。因为这个插件改变了DOM映射
这个插件的用法如下
$('input[type=password]').disableAutocomplete();
this is creator description
这个jQuery插件强制启用autocomplete=off HTML属性密码(和其他)字段。最近的浏览器选择忽略此属性有利于用户首选项。然而,一些金融机构(和其他)机构可能有很好的理由执行这一规定练习。
jquery禁用自动完成功能
老发表评论我有一个有两个输入的页面。其中输入类型为密码,其他文本(用户名密码形式)。Safari不能使用autocomplete="off"。我在这个问题中使用了两个内联隐藏输入。这些输入的通用名称如下。我原来的用户名密码输入有不同的名称,所以Safari首先寻找一个钥匙链来获取或设置这些输入。您可以使用此解决方案来防止Safari对您的安全页面使用密钥链。
<input type="text" name="Username" style="display:none;"/>
<input type="password" name="Password" style="display:none;" />
- 当与Dojo验证一起使用时,Chrome 41密码保存会做出错误的选择
- UIWebView正在保存用户名和密码
- 如何将调整后的密码保存到浏览器
- 如何阻止浏览器要求在注册表单中保存电子邮件和密码
- Mongoose ODM:Can'由于异步,无法保存编码的密码
- 在 document.ready 上保存的用户/密码为空
- 哈希,盐和保存密码在节点/快递
- 检查输入类型并在单击保存时跳过输入“密码”字段
- 如何使 Firefox 在 JQuery UI 对话框中自动填写保存的密码
- 在javascript变量中保存密码-安全性影响
- 如何从firefox扩展中删除保存的密码
- 如何通过浏览器使用Angular.js和Javascript删除记住我选项保存的密码
- 保存密码弹出铬浏览器
- 如何禁用保存密码提示在chrome
- Cpanel和WHM不会在Chrome中保存密码
- 使用JavaScript为我的网站保存密码
- 在脚本更改输入类型后,chrome和IE不提供保存密码
- 如何允许浏览器将文本输入保存为密码
- Sencha touch:保存登录名/密码(保存会话,多任务)
- 禁用Safari 7.0.2密钥链密码保存