2015-10-26 149 views
0

我试图区分页面点击和自动重新加载。自动重新加载是通过下面的JavaScript完成的。区分按钮点击和javascript页面重新加载

var pageReload = { 
Initialize: function() { 
     window.setTimeout("location.reload(true);", 60000); 
} 
pageReload.Initialize(); 

我想设置一个隐藏变量在这我想您在Page_PreRender改变的值来了解页面点击自动重载之间的区别上面的代码。

var hdnReloadType = document.getElementById('<%=hdnReloadType.ClientID%>'); 
hdnReloadType.value = "1"; 

JavaScript在PreRender之后加载,我确定如何继续。

有什么想法?

回答

0

而不仅仅是做一个reload(),您可以在URL中添加“重新加载”参数。如果我们使用类似replaceUrlParam()功能从this answer,我们可以说:

var pageReload = { 
    Initialize: function() { 
    window.setTimeout(
     function() { 
     var url = replaceUrlParam(window.location.href, 'reloaded', '1'); 
     window.location.href = url; 
     }, 
     60000 
    ); 
    } 
} 
pageReload.Initialize(); 

现在,当页面已经被自动重新加载(只有这样),查询字符串将包含“重新加载= 1”。

0

你总是可以使用localStorage离开时,你的函数重载页面后面的面包屑:

localStorage.setItem('page-reloaded', 'true'); 

页面加载后,检查面包屑:

var reloaded = localStorage.getItem('page-reloaded') || false; 

然后清理算账:

localStorage.removeItem('page-reloaded'); 
0

谢谢你所有的回复。

因为我使用的是asp.net,所以我能够从Request对象中捕获前一页单击URL,并从那里确定是否是页面自动重载或按钮单击。查询字符串重新加载选项也很棒,但我们不想将其公开给用户。这个解决方案适用于我的情况。