关闭 Internet Explorer 浏览器后退按钮上的表单字段自动完成功能
Posted
技术标签:
【中文标题】关闭 Internet Explorer 浏览器后退按钮上的表单字段自动完成功能【英文标题】:Turn off form fields autocomplete on browser back button for Internet Explorer 【发布时间】:2011-08-02 22:54:13 【问题描述】:有一些问题解释了如何关闭表单字段的自动完成功能,但是我在这里有一个具体问题:
我已将autocomplete="off"
设置为<form>
和所有表单字段。当用户使用浏览器后退按钮从表单目标页面返回到原始页面(包含表单)时,我想防止浏览器预填充字段。表单字段使用了一些 jQuery UI 小部件,这些小部件不适用于预填充值。用户在提交表单之前必须与表单进行交互。
这在 Firefox、Chrome、Safari 中按预期工作。但是它在 Internet Explorer 中不起作用(我已经测试了版本 8 和 9)。通过浏览器的后退按钮返回页面时,IE 仍然会填写字段。
这是一个静态 html 页面,因此我无法执行一些后端操作,例如设置随机表单字段名称/ID。
我能做什么?
【问题讨论】:
我不确定这是否可行。也许尝试清空文档准备好的每个输入字段(例如$(":input").val("");
)
嗯,这不是最佳解决方案。我忘了提到表单字段包含一些初始的描述性值,例如“您的名字”,当然应该保留这些值。
@Sven 输入元素有一个defaultValue
属性,应该包含初始值。您可以尝试将它们设置为那个。
@Sven - 更好的是,查看输入字段的 placeholder
属性。它是为字段内的那种信息文本明确设计的。这是一项 HTML5 功能,因此较旧的浏览器可能不支持它,但如果浏览器不支持,则有 javascript/JQuery 脚本将使用占位符属性。
我尝试使用 placeholder
属性并评估了一些 jQuery 插件,这些插件将此功能带到了非 HTML5 浏览器。然而,这些插件都没有完美地工作。例如,执行val("")
会在非 HTML5 浏览器中删除占位符文本,而在“标准”浏览器中保留占位符。我想这与插件使用value
属性作为解决方法有关。我现在使用placeholder
的组合并将所有输入字段的值设置为页面加载时的占位符值。
【参考方案1】:
<script type="text/javascript">
window.onbeforeunload = function ()
var f = document.getElementById('MyTextBox');
f.textContent = ""; // or default values
</script>
你有没有试过这样在离开页面时卸载数据,这样回来时它就不存在了?
很遗憾,我遇到了同样的问题,我无法在 ASP.NET 中使用此解决方案。
【讨论】:
以上是关于关闭 Internet Explorer 浏览器后退按钮上的表单字段自动完成功能的主要内容,如果未能解决你的问题,请参考以下文章
我的网站在 Internet Explorer 中显示奇怪 [关闭]
Bootstrap 模态样式的位置固定关闭按钮在 Internet Explorer 中未正确显示
在Windows Server 2012启用或关闭Internet Explorer增强的安全配置
JavaScript XMLDOM XML XSL Internet Explorer - 我无法在浏览器中显示转换后的文件