如何使用html或javascript禁用safari从表单保存用户/传递?
我有这个问题,想出了safari 7.0.2,你可以将用户/传递保存到钥匙串,当你转到同一个表格时,它会自动覆盖这些字段吗?我个人认为这是一种可怕的行为。我不认为应该覆盖领域。
我创建了一个可以在此处演示此问题的独立版本。 http://dev.davidsalazar.com/issues/safari-autofill/
复制步骤(确保使用最新的safari 7.0.2)
答案 0 :(得分:0)
解决方法:创建另一个(假的)密码字段,Safari可能会被它弄糊涂 - 在这种情况下自动填充将被“禁用”
在Safari 7.0.2和7.0.3中测试
演示(使用红色假密码):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>
答案 1 :(得分:0)
由于所有浏览器中的新行为而无法实现 - 自动完成=&#34;关闭&#34;现在被忽略了
有关详细信息,请参阅http://raesene.github.io/blog/2014/04/17/changing-times-the-end-of-autocomplete-equals-off/
答案 2 :(得分:0)
我在白天为我的项目搜索这个问题。最后我在下面找到了解决方案机智插件。
这样的插件工作结构。它得到你的输入并克隆它。 使用此克隆并创建相同的输入属性并将其克隆为另一个隐藏的输入。之后删除原始输入并将隐藏和克隆的输入放在同一位置。
这是理由。当页面加载并通过DOM映射时,现代浏览器(具有钥匙串)控制输入(类型密码)。页面加载插件后获取输入并克隆并删除原始输入。此操作会更改DOM映射。因此,当页面重定向时,浏览器无法访问此控件。所以不建议你保存密码。
您可以使用此插件解决此问题。
注意:
初始化键盘改变
前
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">
此插件用法如下所示
$('input[type=password]').disableAutocomplete();
这是创造者解释
此jQuery插件强制执行autocomplete = off HTML属性 密码(和其他)字段。最近的浏览器选择忽略 此属性有利于用户首选项。但是,一些财务 (和其他)机构可能有充分的理由来执行此操作 实践。
旧评论 我有一个包含2个输入的页面。其中一个输入类型密码,其他文本(用户名密码形式)。 Safari无法使用autocomplete =“off”。我用这个问题有两个内联隐藏输入。这些输入具有通用名称,如下所示。我的原始用户名密码输入具有不同的名称,因此Safari首先查找用于获取或设置这些输入的钥匙串。您可以使用此解决方案来阻止Safari使用安全页面的钥匙串。
<input type="text" name="Username" style="display:none;"/>
<input type="password" name="Password" style="display:none;" />