繁体   English   中英

触发document.ready后退按钮IE11

[英]Fire document.ready on back button IE11

我有一个带有搜索表单的页面。 当您第一次访问该页面时,我触发了一个jQuery(document).ready():

jQuery(document).ready(
  function () {
    jQuery("#new_search").val(Math.round(new Date().getTime() / 1000));
  }
);

现在,当您提交表单然后单击“后退”按钮时,document.ready不会触发,需要触发。

最初的问题仅出现在Firefox中,但是经过一些研究,我发现在正文中添加一个卸载事件可以解决以下问题:

jQuery(window).unload(function(){});

现在,有人告诉我它在IE11中不起作用。

任何人都有获得在IE11中启动document.ready函数的任何提示吗?

因此,我在搜索中偶然发现了这个答案 ,并将其埋在帖子的底部。

我试了一下,它起作用了:

// break the bfcache (ie11 and all others likely)
jQuery(window).focus(
  function() {
    jQuery("#new_search").val(Math.round(new Date().getTime() / 1000));
  }
);

我保留了原始代码的原样,因为在我的情况下,我仅设置了unix时间戳,并且如果多次发生也可以。

完整答案:

jQuery(document).ready(
  function () {
    jQuery("#new_search").val(Math.round(new Date().getTime() / 1000));
  }
);

jQuery(window).unload(function(){});

jQuery(window).focus(
  function() {
    jQuery("#new_search").val(Math.round(new Date().getTime() / 1000));
  }
);

对于遇到此问题的其他任何人,以下是MSDN文章,其中记录了如何停止IE11的向后/向前缓存行为: https ://msdn.microsoft.com/library/dn265017( v= vs.85).aspx。 据此,添加一个beforeunload事件处理程序将其停止。 这也适用于Firefox: https//developer.mozilla.org/en-US/docs/Using_Firefox_1.5_caching

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM