草庐IT

Pushstate

全部标签

javascript - 传递给 history.pushState 的状态对象是什么,它有什么作用?

传递给history.pushState的stateObj是什么,它有什么作用?例如,history.pushState(stateObj,title,url); 最佳答案 状态对象,asdefinedbythespec,是您作为作者想要与该状态相关联的任何对象:Pagescanaddstateobjectsbetweentheirentryinthesessionhistoryandthenext("forward")entry.Thesearethenreturnedtothescriptwhentheuser(orscript

javascript - Chrome 中的 history.pushState 发出图标请求

代码:varnewurl=window.location.protocol+"//"+window.location.host+window.location.pathname+"?"+queryStr;window.history.pushState({path:newurl},'',newurl)当前场景:每次window.history.pushState()被调用时,favicon请求都会迅速发生。它会在每次调用此函数时对favicon进行网络请求。预期情况:favicon应该只在页面加载时加载一次,我不希望window.history.pushState()的每个请求都加载f

javascript - History.pushstate 有回调吗?

我的Google-fu什么也搜不到。当你这样做时:varstateObj={state:"somestate"};history.pushState(stateObj,"page2","other.htm");是否有关联的窗口回调?我知道有这个:window.onpopstate=function(){}这非常适合在用户点击后退按钮时收听。但是,我想随时收听URL的任何更改,但我不确定该怎么做。URL更改时是否有全局回调? 最佳答案 不,没有onpushstate或其他任何东西。然而,一个小猴子补丁可以解决这个问题:varpushS

javascript - HTML5 History.pushState 破坏包含百分比编码的非 Ascii (Unicode) 字符的 URL

在OSS网络应用程序中,我们有执行一些Ajax更新的JS代码(使用jQuery,不相关)。页面更新后调用html5历史接口(interface)History.pushState,代码如下:varupdateHistory=function(url){varcontext={state:1,rand:Math.random()};/*----->bedforetheproblemcallaftertheproblemcall[请注意:完整的代码段是为上下文提供的,HACK部分不是本题的问题]该应用程序是国际化的,并且在URL中使用URL编码的Unicode段,因此在上面的代码中在标记的

javascript - pushState 如何防止潜在的内容伪造?

如GitHub'sblog所示,他们实现了HTML5'sJavaScriptpushState树浏览功能(适用于现代浏览器),带来AJAX导航withoutHashBangs.代码很简单:$('#slidera').click(function(){history.pushState({path:this.path},'',this.href)$.get(this.href,function(data){$('#slider').slideTo(data)})returnfalse})这非常优雅地允许他们:通过AJAX请求新内容而不是整个页面动画过渡并且更改浏览器URL(不仅仅是#,就

javascript - 历史 pushState 和滚动位置

当用户使用HTML5popstate处理程序在浏览器历史记录中返回时,我正在尝试检索滚动位置。这是我的:$(document).ready(function(){$(window).on('popstate',PopStateHandler);$('#link').click(function(e){varstateData={path:window.location.href,scrollTop:$(window).scrollTop()};window.history.pushState(stateData,'title','page2.html');e.preventDefaul

javascript - history.pushState - 不工作?

我想在不重新加载的情况下更改html。我喜欢这样做:$('#left_menu_item').click(function(e){if(!!(window.history&&history.pushState)){e.preventDefault();history.pushState(null,null,newUrl);}});它工作正常。但是如果我想用“后退”按钮返回-浏览器更改以前的url,但它不会重新加载页面。为什么? 最佳答案 此行为是预期的并且符合specifications操纵历史堆栈。这是一个解释起来比较复杂的问题。

javascript - Failed to execute 'pushState' on 'History' error when using window.history.pushState 函数

我在JavascriptMVC应用程序中使用window.history来为每个Controller启用后退/前进/刷新功能。每次加载新Controller时,我都会使用window.history.pushState将新状态添加到历史记录中。然后在返回/刷新时,我使用保存的状态并重用数据再次构建Controller。除特定场景下的一个问题外,整个想法工作正常。我收到以下错误:Failedtoexecute'pushState'on'History':Anobjectcouldnotbecloned.在其他情况下添加相同的数据没有问题。什么会导致此错误?感谢您的协助。

javascript - 如何使用 JS History API pushState 处理刷新页面

我正在创建的一个小型网站(更像是摆弄)使用AJAX来加载每个页面。以前我改变了url的散列,这很好用但很丑,用户可以刷新页面,它会停留在同一页面上。现在我已经切换到在JSHistoryAPI中使用pushState,这看起来好多了,前后工作,但刷新没有。例如:转到:http://example.com/page2转到404,因为没有真正的页面称为第2页。但是如果我单击使用pushState方法更改的按钮url,它可以正常工作。如何使用新的HistoryAPI允许刷新和永久链接?(以及搜索引擎如何处理这个问题,鉴于Google必须创建一种索引哈希url的方法,通过让开发人员切换到#!,他

javascript - Backbone.js 和 pushState

如果我在Backbone路由器中启用pushState,我是否需要在所有链接上使用returnfalse还是Backbone路由器会自动处理?是否有任何样本,包括html部分和脚本部分。 最佳答案 这是TimBranyen在他的boilerplate中使用的模式:initializeRouter:function(){Backbone.history.start({pushState:true});$(document).on('click','a:not([data-bypass])',function(evt){varhref=