我有一个带搜索表单的页面。当您第一次访问该页面时,我有一个jQuery(文档).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函数的提示吗?
答案 0 :(得分:3)
所以,我在我的搜索中偶然发现this answer,埋在帖子的底部。
我试了一下它的确有效:
// 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));
}
);
答案 1 :(得分:1)
对于遇到此问题的其他任何人,这里有一篇MSDN文章,记录了如何阻止IE11的向后/向前缓存行为:jQuery sort elements using data id。据此,添加一个beforeunload事件处理程序会停止它。这也适用于Firefox:https://msdn.microsoft.com/library/dn265017(v=vs.85).aspx。