草庐IT

popstate

全部标签

javascript - 如何使用 polymer 检测浏览器后退按钮点击事件?

是否可以检测到用户是通过使用浏览器中的历史后退按钮进入页面的?我最好使用polymer来检测此操作。 最佳答案 您可能会收听此处记录的popstate事件:https://developer.mozilla.org/en-US/docs/Web/Events/popstate这应该在单击后退按钮、调用history.back()等时触发。 关于javascript-如何使用polymer检测浏览器后退按钮点击事件?,我们在StackOverflow上找到一个类似的问题:

javascript - 浏览器后退按钮更改动态 url 参数

我在一个网站上工作,其中url参数根据用户操作进行更新,据此我更新网页而不刷新。考虑电子商务场景,当用户点击过滤器时url发生变化,然后显示更新的产品。现在的问题是,当用户点击浏览器的后退按钮时,浏览器返回到之前的url参数,但页面没有改变。我还想根据单击后退按钮后更改的url参数更改页面。我试过这个解决方案:$($window).on('popstate',function(e){//Updatethepagealso});此代码的问题是,它会在url更改时被触发,这意味着它不关心浏览器后退按钮是否被单击,或者url正在使用jQuery更改。因此,如果我根据用户交互更改url,将调用

javascript - 绑定(bind) popstate 事件不起作用

我试图将这段代码输入浏览器的控制台:window.onpopstate=function(){alert(1);}然后点击后退按钮。没有显示警报。难道我做错了什么?还是不允许从控制台将popstate事件绑定(bind)到页面?使用Chrome24和Firefox18 最佳答案 在控制台输入这个window.onpopstate=function(){alert(1);};history.pushState({},'');然后点击后退按钮。 关于javascript-绑定(bind)po

javascript - 忽略 Safari 的初始页面加载 popstate

我正在使用pushState并根据当前页面的history.state在popstate事件上生成页面View。如果没有history.state我(希望)重新加载文档。window.onpopstate=function(event){if(window.history.state!==null){//pagewasajaxcreatedandhistorycreatedbypushState//recreatewithajax}else{//pagewasloadedfromservernormallydocument.location.reload()}}问题是Safari在初始

javascript - 在 window.popstate 上获取新的 URL

当window.popstate被触发时,有什么方法可以获取新页面的url吗?window.onpopstate(function(){newPageUrl=//getthenewpage'sURL}) 最佳答案 使用这个window.onpopstate(function(){newPageUrl=location.href;}) 关于javascript-在window.popstate上获取新的URL,我们在StackOverflow上找到一个类似的问题:

javascript - 从不同域的页面返回时,如何让 Firefox 触发 popstate 事件?

我有一个简单的网页,即:Historyhackswindow.onpopstate=function(e){alert("location:"+document.location+",state:"+JSON.stringify(e.state));}window.onload=function(e){alert('pageloaded');}YahooPart1现在,关于Chrome和Firefox如何触发popstate事件存在许多差异(当我开始测试IE时,一想到我要面对的是什么,我就不寒而栗),但其中一个是我这里的问题是,每当我点击这两个链接中的任何一个时,Chrome都会触发一

javascript - pushState/popstate 的奇怪问题 - 初始页面似乎是 "pushed"两次

我遇到了一个关于pushState/popstate的奇怪问题,我的初始页面似乎被保存了两次。如果没有例子,有点难以解释。像这样:当前页面是www.bing.com将我的URL复制/粘贴到URL栏并加载页面点击页面上的链接(此链接会触发AJAX请求,然后操作DOM以显示检索到的数据。)按后退按钮将我带到与步骤2相同的页面再次按下后退按钮,但我仍然在与步骤2/4相同的页面上再次按后退按钮,我会回到www.bing.com如您所见,我需要按两次后退按钮才能返回www.bing.com,而它应该只需要按1次。我的页面的简短说明(代码在页面底部):当页面加载时,下拉选择的初始列表通过AJAX检

javascript - 触发popstate事件时如何获取上一页的url?

下面是pushState和popstate事件的简单示例:Clickme$("#example_btn").click(function(){history.pushState({'url':"example.htm"},null,"example.htm");});$(window).bind('popstate',function(event){if(event.originalEvent.state){console.log(event.originalEvent.state.url);}});当触发popstate事件时,显示当前页面的url。我的问题是:在这种情况下,如何在触

javascript - 如何使用 popstate 事件判断前进或后退按钮是否被按下

我一直在做一些研究,似乎每次更改历史记录时都会触发popstate事件,但似乎没有内置的方法来确定用户是单击后退按钮还是前进按钮浏览器中的按钮。我的用例是,当在历史中返回或向前时,我有在ajax应用程序中转换路由时发生的定向动画。我需要确定用户是后退还是前进,这样动画才有意义。可惜popstate事件不支持事件的方向。我还会提到我的应用程序是一个AngularJS应用程序,以防有Angular特定的答案,尽管更通用的javascript解决方案将是最佳的。 最佳答案 我不确定哪种理解是正确的,但我对HTML5pushstate的理解

javascript - 发生 hashchange 时 IE 不触发 popstate

我有一个页面在客户端进行路由,使用历史API和push/popstate。这在所有现代浏览器上都可以正常工作。(搜索引擎将由node.jsprerenderer支持)但是,我最近遇到了一个问题,即IE不会在hashchange上触发popstate,而带有url的pushstate工作正常,包括IE11。比如像这样...$(document).on('click','a',function(e){e.preventDefault();History.pushState({},'',$(this).attr('href'));});...正确触发...$(window).on('pops