我正在使用javascript后退按钮链接和前进按钮链接来控制用户在模态/灯箱窗口内的历史记录。
我遇到的挑战是启动模态窗口,并且存在“后退”和“前进”按钮供用户点击,如果在窗口打开时单击初始的javascript后退按钮,它实际上会关闭模态窗口,因为javascript历史记录正在将用户带回到模态窗口打开之前的页面。
所以,实质上,我试图禁用“后退”按钮来处理模态/灯箱的初始加载。
这可能吗?这是一个正在发生的事情的演示...... http://www.apus.edu/_test/evan/modal/start.htm
<a href="javascript:history.go(-1)">Back Button</a>
<a href="javascript:history.go(1)">Foward Button</a>
答案 0 :(得分:0)
我不确定我是否理解你正在使用模态窗口做什么,但我想到的第一件事就是编写一个函数,并将history.go(-1)包装在条件中
function goBackIfAppropriate() {
if( /* <check goes here> */ ) {
history.go(-1);
}
}
和你的标记
<a href="javascript:goBackIfAppropriate()">Back Button</a>
不要在没有提及jQuery的情况下完成这个答案:查看“jQuery BBQ:Back Button&amp; Query Library”
<强>更新强>
好的,我们所拥有的here是跨越浏览器的iframe中history.go的不一致行为。 Firefox3似乎完全符合您的要求,而Chromium则没有。您可以做的是为您的“后退”链接提供ID
<a href="javascript:history.go(-1)" id='back_button'>Back</a>
然后,在加载iframe内容后,您将获取链接:
var iframe = document.getElementsByTagName("iframe")[0];
var link = iframe.contentDocument.getElementById("back_button");
link.parentNode.removeChild(link);
或(使用jQuery;)
$("iframe").contents().find("#back_button").remove();
或做任何你喜欢的事情。
答案 1 :(得分:0)
尝试history.pushState(null, '', '#stay');
*据我所知,这需要支持HTML5的浏览器。