0

我有点失落。

我有两页;结果和细节。每当用户使用浏览器后退按钮从详细信息导航到结果时,结果页面应该刷新,这样我可以显示用户刚刚在详细信息上看到的产品(就像亚马逊对最近查看的项目所做的那样)

我不知道是异步加载页面更好,还是使用这里看到的 setTimeout 更好(下面的示例有效,但页面永远刷新)

   if(window.top==window) {
   // you're not in a frame so you reload the site
   window.setTimeout('location.reload()', 3000); //reloads after 3 seconds
   } else {
   //you're inside a frame, so you stop reloading
   }

当我尝试重新加载一个 div 也不起作用

   $('#div-id').triggerevent(function(){
   $('#div-id').html(newContent);
   });

我也遇到了很多导致这种情况的例子,但没有成功。欢迎任何建议。谢谢

4

2 回答 2

1

当用户点击后退按钮时应该触发 onload 事件。不是通过 JavaScript 创建的元素将保留它们的值。我建议保留在 INPUT TYPE="hidden" 或 TEXTAREA 设置为 display:none 的动态创建元素中使用的数据的备份,然后使用文本框的值进行 onload 以将动态元素重建为原来的方式。

如果您不关心重建页面并想实际重新加载它,那么您可以这样做:

<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>
于 2013-10-18T16:53:53.697 回答
-1

我相信您应该异步重新加载页面。也许将事件附加ready到身体上会起作用。

  $(function(){

    $('body').ready(function(){
      alert('worked');
      //Code to reload the page or data 
    });

  });
于 2013-10-18T16:49:46.473 回答