草庐IT

pushstates

全部标签

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=

javascript - 在 IE 中模拟/填充 history.pushstate()

IE不支持history.pushstate()。在IE中还有其他方法可以实现吗? 最佳答案 考虑使用或改编History.js来自GitHub。根据描述:History.jsgracefullysupportstheHTML5History/StateAPIs(pushState,replaceState,onPopState)inallbrowsers.Includingcontinuedsupportfordata,titles,replaceState.SupportsjQuery,MooToolsandPrototype.

javascript - 将后退按钮与 history.pushstate 和 popstate 一起使用时如何触发更改?

在js方面,我几乎是一个新手,所以如果我遗漏了一些非常简单的东西,我很抱歉。基本上,我对history.pustate和popstate的使用做了一些研究,我已经做到了,所以在url的末尾添加了一个查询字符串(?v=images)或(?v=profile)...(v意思是“View”)通过使用这个:varurl="?v=profile"varstateObj={path:url};history.pushState(stateObj,"page2",url);我想这样做,这样我就可以将内容加载到一个div中,但无需重新加载我使用.load()完成的页面。功能。然后我使用了这段代码:$(

javascript - 安全错误 : The operation is insecure - window. history.pushState()

我在Firefox的控制台中收到此错误:SecurityError:Theoperationisinsecure错误是HTML5功能:window.history.pushState()当我尝试时用AJAX加载一些东西。它应该加载一些数据,但Javascript因错误而停止执行。我想知道为什么会这样。这是一些服务器配置错误吗?任何帮助将不胜感激。更新:是的,这是一个域名不匹配的服务器错误:http://en.wikipedia.org/wiki/Same-origin_policy 最佳答案 确保您关注SameOriginPolic

javascript - 如果 popstate 事件来自 HTML5 pushstate 的后退或前进操作,我该如何检索?

我正在开发一个网页,根据下一步或后退Action我做相应的动画,使用pushstate时会出现问题。当我收到事件时,我如何知道用户是否使用PushstateAPI单击了后退或转发历史按钮?还是我必须自己实现一些东西? 最佳答案 您必须自己实现它,这很容易。调用pushState时,为数据对象提供一个唯一的递增ID(uid)。当onpopstate处理程序被调用时;根据包含最后一个状态uid的持久变量检查状态uid。用当前状态uid更新持久变量。根据状态uid大于还是小于上一个状态uid执行不同的操作。