我正在使用How to automatically reload a page after a given period of inactivity中的Java脚本每30秒刷新一次html页面,效果很好。该页面包含一个表单,一些按钮和一些文本字段。表单还包含一个状态列表,该状态列表在刷新页面时会更新。单击按钮时,会将相应的值发送回服务器。问题是,一旦单击一次按钮,由于JavaScript刷新,每30秒重复一次。第一次后如何删除按钮单击?我想将值保留在文本字段中。
如果您在按钮上附加了功能,例如
<button onclick="myFunction()">Click me</button>
然后将此行添加到该函数中
clickFlag = true
否则将其添加到您的按钮标签中
<button onclick="clickFlag = true">Click me</button>
并如下更改刷新功能
var time = new Date().getTime();
$(document.body).bind("mousemove keypress", function(e) {
time = new Date().getTime();
});
function refresh() {
if(new Date().getTime() - time >= 30000 && clickFlag)
window.location.reload(true);
else
setTimeout(refresh, 10000);
}
setTimeout(refresh, 10000);
您可以使用元标记。这些属性HTTP-EQUIV,内容是必需的。例如:http:// website / login“>
我找到了解决方案,但没有使用javascript。我添加了另一个HTML页面,在提交表单时我去了那里。在这里,我从文本字段中提取数据(并调用一些php)。然后我回到第一页,使用php header命令,附加数据,但不附加按钮。我仍然使用第一页上的javascript来更新状态列表,但是由于刷新,没有重复单击按钮。