我使用
提交表单$('#submitbutton').attr('disabled','true');
setTimeout(function(){ $("#myform").submit(); }, 100);
在safari中,通过单击浏览器的后退按钮返回此页面时,该按钮仍处于禁用状态。
我尝试添加:
$( document ).ready(function() {
$('#submitbutton').removeAttr("disabled");
...
但这也不起作用。
我看过网上了,这似乎与bfcache
有关。
虽然我理解这个缓存的概念,以及它如何提高加载速度,但我不希望它在这个页面上。是否有一个简单的解决方案来禁用它,跨浏览器?我在网上找到的解决方案都是2-5岁,不起作用。
请注意,在Chrome中,一切正常:按钮已启用并且在单击后退按钮后执行了所有JS。
我可以实现启用页面上的按钮或类似的东西,但我真的不喜欢不同浏览器中的这种不同行为。所以我想为所有浏览器禁用bfcache,或者在所有浏览器中使用bfcache。
注意:我不想在点击后退按钮后强制页面刷新,因为这在我的页面上看起来非常难看和笨重。
答案 0 :(得分:0)
通过添加此PHP代码来实现它:
<?php
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
header("Expires: 0");
?>
答案 1 :(得分:0)
即使在pageshow
中也可以触发事件bfcache
,因此请按照以下方式编写js代码:
window.addEventListener('pageshow', function( e ){
//your code
});