Internet explorer IE 11(边缘)中输入值(文本/隐藏)为空;“后退”;或者第二次使用history.back()
Windows 7 IE 11(边缘)上的Internet explorer IE 11(边缘)中输入值(文本/隐藏)为空;“后退”;或者第二次使用history.back(),internet-explorer,microsoft-edge,Internet Explorer,Microsoft Edge,Windows 7 IE 11(边缘)上的前进或后退导航按钮 或者可以使用history.forward(),history.back() 在第一次历史显示中,恢复输入的值, 在第二次历史显示中,输入的值变为空 这是IE11(Edge)的问题吗 Windows 10(Edge)浏览器也会这样做 在兼容模式下,IE 8之前的值不是空的,但IE 9之后的值是空的 在FireFox、Chrome、Safari、Opera中,该值不是空的 示例操作。 输入表格A (1) 在文本框中输入一个值 (2)
前进
或后退
导航按钮
或者可以使用history.forward()
,history.back()
在第一次历史显示中,恢复输入的值,
在第二次历史显示中,输入的值变为空
这是IE11(Edge)的问题吗
- Windows 10(Edge)浏览器也会这样做
- 在兼容模式下,IE 8之前的值不是空的,但IE 9之后的值是空的
- 在FireFox、Chrome、Safari、Opera中,该值不是空的
文本框中输入一个值
(2) 按
发送,转换为输入表格B
文本框中输入一个值
(2) 按
发送,转换为输入表格C
文本框中输入一个值
(2) 按
发送,转换到输入表单Aback
按钮输入表格C backback
按钮返回输入表格Bback
按钮以输入表格back前进
按钮进入输入表格B前进
按钮前进到输入表单C[history\u back\u test1.jsp]
输入表格A
[history\u back\u test2.jsp]
输入表格B
[history\u back\u test3.jsp]
输入表格C
您可以使用此snip代码:
$(document).ready(function () {
$("input[type=text]").each(function () {
$(this).val($(this).val());
});
});
由于没有使用jQuery,我用纯JavaScript确认了效果:
window.addEventListener("load", function() {
var elms = document.getElementsByTagName("input");
for (var i = 0; i < elms.length; i++) {
var elm = elms[i];
var elmType = elm.type.toLowerCase();
if (elmType === "text" || elmType === "hidden") {
elm.value = elm.value;
}
}
}, false);
window.addEventListener(“加载”,函数(){
var elms=document.getElementsByTagName(“输入”);
对于(变量i=0;i
IE 11(边缘)、IE 10(IE 11兼容模式)、IE 9(IE 11兼容模式)正常
即使它与FireFox、Chrome、Safari、Opera一起运行也没有问题。另一种方法是保持元素中不保留值
<html>
<head>
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript">
<!--
var dvs = new DelayInitValueSetter();
function DelayInitValueSetter() {
var delayValues = [];
var thisRef = this;
var p = DelayInitValueSetter.prototype;
p.add = function(id, value) {
var info = new Object();
info.id = id;
info.value = value;
delayValues[delayValues.length] = info;
};
p.reset = function() {
window.setTimeout(function() { dvs.exec(""); }, 0);
}
p.exec = function(dvsFlag) {
if (dvsFlag !== "" || delayValues.length === 0) {
return;
}
for (var i = 0; i < delayValues.length; i++) {
var elm = document.getElementById(delayValues[i].id).previousElementSibling;
elm.value = delayValues[i].value;
}
thisRef.completeDvsFlag();
};
p.getDvsFlag = function() {
var dvsFlagElm = document.getElementsByName("dvsFlag");
if (dvsFlagElm === void(0) || dvsFlagElm === null || dvsFlagElm.length === 0) {
return "";
}
return dvsFlagElm[0].value;
};
p.completeDvsFlag = function() {
var dvsFlagElm = document.getElementsByName("dvsFlag");
if (dvsFlagElm === void(0) || dvsFlagElm === null || dvsFlagElm.length === 0) {
return;
}
for (var i = 0; i < dvsFlagElm.length; i++) {
dvsFlagElm[i].value = "completed";
}
};
window.addEventListener('load', function() {dvs.exec(dvs.getDvsFlag());}, false);
}
-->
</script>
</head>
<body>
Input form A
<form action="history_back_test2.jsp" method="post">
<input type="text" id="idval1" name="a1"><script id="dvs1">dvs.add("dvs1","");</script>
<input type="text" id="idval2" name="a2"><script id="dvs2">dvs.add("dvs2","123");</script>
<input type="text" id="idval3" name="a3"><script id="dvs3">dvs.add("dvs3","ABC");</script>
...
<br>
<input type="submit" value="next page">
<input type="hidden" name="dvsFlag" disabled="disabled">
</form>
</body>
</html>
输入表格A
添加(“dvs1”和“);
dvs.添加(“dvs2”、“123”);
dvs.添加(“dvs3”、“ABC”);
...
谢谢