我创建了一个产品列表页面并使用这个JS来保持url反映用户正在查看的项目(因此后退按钮应该返回到页面上的那一点)
setInterval(function() {
itm = jQuery('.my_item:visible:last').attr('id');
jQuery('.my_item').each(function(){if((jQuery(this).offset().top + jQuery(this).height()) > jQuery(window).scrollTop()){
itm = jQuery(this).attr('id');
return false;
}});
history.replaceState({} ,window.location.href.split('itm=')[0] , window.location.href.split('itm=')[0] + '&itm='+ itm);
},200);
这在我的桌面镀铬浏览器以及Android和Iphone 6及以下工作100%但由于某些原因在iphone7上这不起作用似乎URL并不总是更新,任何想法为什么它不起作用?< / p>
答案 0 :(得分:1)
据我所知,由于安全原因,iPhone中禁止使用history.replaceState。但是更改window.location.hash不是,所以你可以使用hash而不是query参数来创建相同的功能。