我有一个包含大量jQuery的主页...根据标签的点击等隐藏和显示div。在显示的div中有链接到其他页面回发并获取新页面。
现在,我希望页面上的“后退”按钮可以在用户点击页面时返回到页面的上一个状态。因此,如果他们点击链接时显示Sell_your_books div
和'Sell_your_books标签',我希望有一个后退按钮进入主页,显示Sell_your_books div
和'Sell_your_books标签'
我知道我必须将一个变量解析(POST)到主页以实现这一点,但是我不确定实现它的正确方法。
由于
答案 0 :(得分:2)
使用哈希超链接和hashchange
事件。在jQuery中:
$(window).on('hashchange',function() {
var hash = location.hash.substring(1); // strip the leading # symbol
// now run code based on whatever the value of 'hash' is
});
HTML
<a href="#hash1">function A</a>
<a href="#hash2">function B</a>
现在,只要用户点击浏览器的“后退”按钮(或触发history.go(-1))
的HTML按钮,它就会返回之前选择的任何哈希值并再次触发哈希转换事件。
答案 1 :(得分:0)
创建一个隐藏的输入字段,并使用当前活动选项卡填充此字段。
<form>
..
<input type="hidden" name="currentTab" value="" />
</form>
设置正确值的jQuery:
$( YOUR TAB SELECTOR ).on('click', function() {
$('input[name=currentTab]').val( $(this).attr('id') );
});
在处理数据的PHP脚本中,您可以创建一个这样的反向链接:
<?php
if( isset($_POST['currentTabe']) && $_POST['currentTab'] != '' ) {
$backLink = "your_page.php?tab=" . $_POST['currentTab'];
}
?>
如果您现在通过反向链接调用带有选项卡的站点,则可以创建一个额外的document.ready事件,将活动选项卡设置为PHP $ _GET Parm。
<script type="text/javascript">
<?php
if( isset($_GET['tab']) && $_GET['tab'] != '' ) {
?>
jQuery(document).ready( function() {
var tab = $('#'+ <?=htmlspcialchars( $_GET['tab'] )?>);
if( tab.length <= 0 ) return false; //element not found
//active tab
tab.toggle('click'); //click or do something else to activate the current tab
});
<?php
}
?>
</script>
注意: 谨防XSS(跨站点脚本),因此请检查$ _POST和$ _GET是否正确值。