我有一些使用Javascript和window.onload
功能的重放功能。
但是,当我转到其他页面然后返回到Web应用程序(使用onload
功能)时,由于页面尚未刷新(或已加载),因此不再有效。
有没有办法可以刷新window.onload
函数中的功能,如果用户没有关闭页面但是它在后台并且在一段时间后回来并让它聚焦?
编辑 - 糟糕的问题。经过测试后,我意识到这种行为仅适用于chrome,但在IE和Firefox中运行良好。对不起伙计们,我真的以为这是一个错误
答案 0 :(得分:0)
我认为“回来”是指“用你的网站重新打开窗口/标签”,而不是“在用户真正离开页面后按下后退按钮”,在这种情况下onLoad
应该火也是。
您可以使用window.onFocus()
事件。请注意,每次窗口/选项卡再次聚焦时都会调用它,因此它可能会比您希望的更频繁地触发。您可以通过保存上次刷新的时间戳并与上一个时间戳进行比较来防止这种情况发生。即为您的页面实现“超时”,并在最后一次刷新超过X秒时重新加载onFocus。
答案 1 :(得分:0)
当用户点击后退按钮时,应触发onload事件。不是通过JavaScript创建的元素将保留其值。我建议将动态创建的元素中使用的数据备份到<input type="hidden">
设置为display:none
,然后使用文本框的值重新加载,以便按照它们的方式重建动态元素。
如果您不关心重建页面并想要重新加载它,那么您可以这样做:
<input type="hidden" id="refreshed" value="no">
<script type="text/javascript">
onload=function(){
var e=document.getElementById("refreshed");
if(e.value=="no")e.value="yes";
else{e.value="no";location.reload();}
}
</script>