Javascript 更改浏览器url
你可以在屏幕上看到我的演示代码Javascript 更改浏览器url,javascript,jquery,Javascript,Jquery,你可以在屏幕上看到我的演示代码 https://codepen.io/Nyarl/pen/EORXMe $(窗口).on('load resize scroll',function(){ var-activeFound=false; $('article')。每个(函数(){ 如果(!activeFound){ if($(this).is(':在视口(5)”中){ $(“article.current new”).removeClass(“current new”); $(this.addC
https://codepen.io/Nyarl/pen/EORXMe
$(窗口).on('load resize scroll',function(){
var-activeFound=false;
$('article')。每个(函数(){
如果(!activeFound){
if($(this).is(':在视口(5)”中){
$(“article.current new”).removeClass(“current new”);
$(this.addClass('current-new');
var url=$(this.data('url');
var title=$(this).data('page-title');
document.title=标题;
pushState('要传递的数据'、标题、url);
console.log(url);
activeFound=true;
}
}
});
});代码>
文章{
最大宽度:500px;
最小高度:500px
}
第1条当前-新{
背景:红色;
}
Lorem ipsum dolor坐在amet Concertetur,告别精英。智者在接受非消费性的社会福利时,是否会被视为一种临时性的消费?
您可以使用以下方法防止pushState多次将url添加到历史记录中:
if(!history.state || history.state.url != '/yourUrl'){
// then push state
}
通过history.state
我们将检查是否存在历史记录集,如果是,我们需要确保此状态不等于pushState url
注:pushState最可能如下所示:
history.pushState({ url: "/yourUrl" }, title, url);
每次我滚动时,它仍然会运行代码块。当我尝试log history.state.url时,它返回未定义的。很抱歉,我现在更新了我的答案,url是pushState对象中设置的标识符,因此,如果设置history.state.url
,您现在可以看到url,您也可以传递您想要的任何数据……或者标记url的任何嵌套变量。。