[英]How to update page url on page refresh?
我正在寻找一种在用户刷新页面时更改页面url(更改url键值之一)的方法。 我这样做是为了反映页面内容的变化。 我尝试了几种方法,但是它们都有循环问题。 下面是方法之一:
在我的html页面中:
<body onLoad="CheckPageLoad();">
<input type="hidden" name="trial" id="trial" value="hello" />
</body>
在page.asp页中:( 在script标签内 )
function CheckPageLoad() {
if ($("#trial").val() == "hello") {
// This is a fresh page load
alert('Load');
$("#trial").val("hi");
} else {
// This is a page refresh
window.location = url;
alert('Refresh');
}
}
问题 :
任何更新上述方法或使用另一种方法进行刷新的建议均应受到赞赏。 以下是我也尝试过的其他方法:
window.onbeforeunload = unloadPage();
function unloadPage() {
//do something
//works but loops
}
谢谢
我将以下代码放到基本页面中,它演示了为什么您得到描述的行为:
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
function CheckPageLoad() {
if ($("#trial").val() == "hello") {
// This is a fresh page load
alert('Load');
$("#trial").val("hi");
} else {
// This is a page refresh
alert('Refresh');
window.location = window.location + '?id=1';
}
}
</script>
</head>
<body onLoad="CheckPageLoad();">
<input type="hidden" name="trial" id="trial" value="hello" />
</body>
</html>
设置window.location时,它会更改url(嗯!),因此意味着您正在加载新页面。 刷新页面后,在“加载”之前会收到“刷新”警报。 这表明页面先发布,但是onload事件导致页面导航到另一个位置,因此再次加载。 据我了解,更新URL中的任何内容最终都是一个新的请求/新加载的页面。
您可能会发现以下有关asp中的视图状态的有用信息(如您所建议的那样,您正在使用asp页面): http : //msdn.microsoft.com/zh-cn/library/ms972976.aspx
我的建议是完全删除window.location = url;
代码的一部分,以便查看发回的数据。 这意味着您不必在回发时不必要地加载页面两次,并允许您从任何更新的输入中访问数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.