关闭 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增强的安全配置

为啥我的Internet Explorer 浏览器打不开

JavaScript XMLDOM XML XSL Internet Explorer - 我无法在浏览器中显示转换后的文件

我的Internet Explorer浏览器出了点问题..谁来帮帮我~~!!