问题描述
当用户提交数据并检索包含超链接的html数据时,我正在页面上工作。 现在,当用户单击链接时,他将被导航到另一个页面,并且当用户单击浏览器的后退按钮时,我想显示先前显示的html数据。 为了实现这一点,我尝试将值存储在会话中,并在用户单击浏览器按钮时检索它。
但是我遇到了问题
-
我试图捕获浏览器的后退按钮并显示会话存储的变量,但我不确定为什么未触发该事件。
$(window).on('hashchange',function(){ $(“#spanId”)。html(“ test”); });
-
存储在会话变量中的HTML数据无法正确显示,就像“
$(document).ready(function () { $("#spanId").html("@Session["Data"]"); $("#btnSubmit").click(function () { var data = { "Date": $.datepicker.formatDate("mm-dd-yy",DateVal),"Type": $('#type').val(),} $.ajax({ type: 'POST',dataType: "json",contentType: "application/json; charset=utf-8",data: JSON.stringify(data),url: '@Url.Action("GetReportdata","Reports")',success: function (result) { $("#spanId").html(content); },error: function (xhr,ajaxOptions,thrownError) { } }); }); }); Please let me kNow if there is any other way to handle this and help me resolves this issue.
解决方法
在服务器端可能有另一种解决方法,但这应该可行。
$(document).ready(function () {
$("#spanId").html(decodeHtml("@Session["Data"]"));
$("#btnSubmit").click(function () {
var data = {
"Date": $.datepicker.formatDate("mm-dd-yy",DateVal),"Type": $('#type').val(),}
$.ajax({
type: 'POST',dataType: "json",contentType: "application/json; charset=utf-8",data: JSON.stringify(data),url: '@Url.Action("GetReportdata","Reports")',success: function (result) {
$("#spanId").html(decodeHtml(content));
},error: function (xhr,ajaxOptions,thrownError) {
}
});
});
});
function decodeHtml(encodedHtml) {
return encodedHtml.replace(/&/g,'&')
.replace(/</g,'<').replace(/>/g,'>');
}
,
我发现了一个处理浏览器后退按钮的事件
if (window.performance && window.performance.navigation.type ==
window.performance.navigation.TYPE_BACK_FORWARD) {
$("#spanId").html("@Session["Data"]");
}
这对我有用