发布到表单后,JQUERY缓存if Back按钮-JQUERY fadeIn仍然可见
我在JQUERY fadeIn的末尾发布了一个表单发布到表单后,JQUERY缓存if Back按钮-JQUERY fadeIn仍然可见,jquery,caching,browser-cache,back-button,Jquery,Caching,Browser Cache,Back Button,我在JQUERY fadeIn的末尾发布了一个表单 当用户点击submit-a DIV'切换屏幕时,会显示 其中的消息通过JQUERY淡入并覆盖表单页面 一旦div在-javascript中完全消失,然后将表单发布到 另一页 Javascript: Theform = document.getElementById('customers_form'); $('#SWITCHING_SCREENS').fadeIn('slow', function(){ Th
- 当用户点击submit-a DIV'切换屏幕时,会显示
其中的消息通过JQUERY淡入并覆盖表单页面李>
- 一旦div在-javascript中完全消失,然后将表单发布到 另一页
Theform = document.getElementById('customers_form');
$('#SWITCHING_SCREENS').fadeIn('slow', function(){
Theform.submit();
});
Theform = document.getElementById('customers_form');
$('#SWITCHING_SCREENS').fadeIn('slow', function(){
Theform.submit();
$('#SWITCHING_SCREENS').hide();
});
这一切都很好,我并没有提交或任何其他问题。
但如果用户点击浏览器后退按钮(firefox),切换屏幕仍然可见
我已经看到表单元素的back按钮缓存,但希望JQUERY在back按钮上重置。或者我只是没想到它会被缓存
- 它似乎已缓存?
- JQUERY是否缓存了DIV的这种状态?
Theform = document.getElementById('customers_form');
$('#SWITCHING_SCREENS').fadeIn('slow', function(){
Theform.submit();
});
Theform = document.getElementById('customers_form');
$('#SWITCHING_SCREENS').fadeIn('slow', function(){
Theform.submit();
$('#SWITCHING_SCREENS').hide();
});
这确实弥补了使用浏览器后退按钮时处于“fadeIn”状态的DIV缓存问题
但它也会在页面实际切换到发布页面之前删除DIV。我希望div在页面发布到下一页时保持可见,并且在访问者点击后退按钮时消失
这似乎只发生在Firefox中
多谢各位。
注意。将此代码放在pageload上
$(document).ready(function({
$('#SWITCHING_SCREENS').hide();
..... rest of your code will go here.........
}));
您可以使用它,它不会专门截取后退按钮,而是截取卸载当前页面的任何事件。它可以是基于浏览器的任何点击链接、前进按钮或后退按钮
$(window).unload( function () { $('#SWITCHING_SCREENS').hide(); });
当用户导航时,卸载事件被发送到窗口元素
远离页面。这可能意味着许多事情之一。用户可以
单击某个链接以离开页面,或在
地址栏。前进和后退按钮将触发事件。
关闭浏览器窗口将触发事件。即使
页面重新加载将首先创建卸载事件
不是jQuery缓存了任何东西,而是浏览器缓存了用户上次看到的页面状态。这是正常的,有些人说这是更好的行为。例如,如果您滚动到页面底部,然后单击链接(将您带到新页面),然后单击“上一步”按钮,浏览器甚至可能会将您再次带到页面底部,就在您离开页面的地方 因此,我建议如下:
$('#SWITCHING_SCREENS').fadeIn('slow', function(){
$(window).unload( function () { $('#SWITCHING_SCREENS').hide(); });
Theform.submit();
});
嘿,我不是100%确定你想做什么,但这可能会有所帮助,但听起来你希望用户在表单页面1上。点击提交2。等待中三。然后转到另一页
$(document).on('click', 'a', function(event){
$.post(
$(this).attr('href'),
{url: "url",
dataType: "html",
},
function( data )
{
$('#content').fadeOut(function(){
$(this).replaceWith(data).fadeIn();
});
}
);
return false;
});
如果您回击或向前点击,这将提交表单从服务器加载新页面,而不记录url。它只会重新加载页面以显示表单
php端
<?php
// Determing if this is an include or ajax call
if( $_POST["url"] = $_POST['url'] ){ ?>
<div id="content">
new page data
</div>
<?php }else{ ?>
<div id="content">
your form </div>
<?php } ?>
新页面数据
你的表格
这可能更像是一个“黑客”,我很抱歉对jquery来说是新手。这个答案应该有效,FF似乎正在缓存jquery fadeIn元素中存储的CSS。通过隐藏document ready事件上的元素,您正在从fadeIn缓存中删除CSS。