[英]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.