我有一个页面,它使用javascript自动刷新,并刷新URL中的所有参数,例如。 server / ViewRoom.aspx?RoomID = 5& ConfirmID = 4834我只想保留RoomID参数。
我的代码:
<script type="text/javascript">
var timeout = setTimeout("location.reload(true);", 50000); // How often do you want the initial page to refresh?
function resetTimeout() {
clearTimeout(timeout);
timeout = setTimeout("location.reload(true);", 50000); // How often do you want the page to refresh?
}
</script>
如何仅选择RoomID查询字符串进行重新加载
答案 0 :(得分:2)
正如Edmund24所说,你不需要清除超时,因为你正在重新加载页面,所以我们的代码看起来像:
<script type="text/javascript">
var timeout = setTimeout("location.reload(true);", 50000);
</script>
同样,我们不需要跟踪处理程序ID,因此我们可以忽略存储:
<script type="text/javascript">
setTimeout("location.reload(true);", 50000);
</script>
Edmund代码的主要问题是,在RoomID查询字符串不是URL中的第一个查询字符串的情况下,这将不会按预期运行。因此,我们需要明确搜索并获取包含“RoomID”的查询字符串:
<script type="text/javascript">
setTimeout(function () {
var domain = location.href.split('?')[0],
queryStrings = location.href.split('?')[1].split('&'),
roomIDqs;
queryStrings.forEach(function (e, i, a) {
if(~e.indexOf('RoomID')) roomIDqs = e;
});
location.href = domain + roomIDqs;
}, 50000);
</script>
我还没有测试过这段代码,但这应该是个主意。
注意:
答案 1 :(得分:0)
由于重新加载,我认为你不需要清除超时。
<script type="text/javascript">
setTimeout( function () { location.href = location.href.split('&')[0]; }, 50000);
</script>
上面的代码通过传递修改后的href(先删除后的所有内容)和当前位置的href来模仿refrash