我正在尝试制作一个在 history.go()
和 history.go(-2)
之间切换的后退按钮,具体取决于是否有特定的 div#id
(不是按钮的父级)在页面上。 div#id
是使用PHP
生成的,按钮是html/js
。
我花了几个小时试图找出如何做到这一点。
用法是:
电子商务网站:您从类别页面(即 cooking 用品)到特定产品页面(即 Pan #1)。将产品添加到购物车后,页面刷新(无 ajax)。出现一个 div,说明 “已添加到购物车”
。如果您单击 history.go(-1)
返回,则必须单击返回按钮 x2 才能返回到类别页面。
因此,当“添加到购物车”div 出现时,我想将 history.go() 更改为 history.go(-2) 这样只需单击按钮 x1 即可返回类别页面。
有什么建议吗?谢谢。
<html>
<a class = “cat1” href="#" onclick="history.go(-1)">Go Back</a>
<a class = “cat2” href="javascript:history.back(-2)”>Go Back2</a>
</html>
<script>
$(document).ready(function(){
if($(“.added-message").length > 0) {
$(“.cat2”).show();
////also tried this $divStyle='style="display:none;"';
}
});
</script>
也试过这样的东西(抱歉现在全乱了......)
<script>
function CheckExists() {
var cat1 = document.getElementById(‘cat1’);
var cat2 = document.getElementById(‘cat2’);
if (document.querySelector(‘.added-message’) !== null) {
if (cat2.style.display !== "none") {
cat2.style.display = “none”;
} else {
cat2.style.display = “none”;
}
}
}
</script>
最佳答案
将此添加到您的脚本中:
$(document).ready(function(){
function myfunc(elem){
var $elem = $(elem);
var $window = $(window);
var docViewTop = $window.scrollTop();
var docViewBottom = docViewTop + $window.height();
var elemTop = $elem.offset().top;
var elemBottom = elemTop + $elem.height();
return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}
if(myfunc("div.added-message")==true){
$(".cat2").attr("href", "javascript:history.go(-2)")
}
});
希望对你有帮助
关于javascript - 使后退按钮跳过 2(两)页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34149119/