问题标签 [pushstate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何检测何时使用 history.pushState 和 history.replaceState?
当历史状态被修改时,我可以订阅一些事件吗?如何?
html - HTML5 历史 API
我如何使用 HTML5 历史 API。我确实浏览了https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history。这让我很困惑。我想要的只是更改 ajax 调用上的 url,以便当用户点击后退按钮时,他会获得以前的状态。
我也想知道这有什么坑。何时使用,何时不使用。如何最好地使用 jquery
jquery - window.history.pushState 不会回到历史
我在尝试 history.pushstate 事件时遇到了一点问题。我将其设置为页面的 url 将是通过 AJAX 加载的页面的实际 URL,并且效果很好。
我知道它应该自动创建历史记录,加载以前加载的页面。不幸的是帽子没有发生,当我点击后退时,网址确实发生了变化,但页面没有发生变化。你能帮助我吗?这是我的简化代码:
javascript - HTML:在不重新加载页面的情况下更改 URL?
看看这个链接:
http://google.blogspot.com/view/timeslide
然后单击帖子,您可以看到 URL 正在发生变化,但没有 # 或类似的东西,它会像页面正常加载一样发生变化,但内容会像使用 AJAX 构建一样发生变化。
最新稳定版本的 Chrome 10 会发生这种情况,但对于 Firefox 3.6,它使用带有哈希的旧方法 :)
这怎么可能,这是一个新的 HTML5 功能还是什么?
javascript - 在 IE9 中使用 HTML5 pushState()
有没有办法pushState
在 IE9 中使用 HTML5 History API ( )?如果有适用于所有其他浏览器的解决方案,那就太好了!
javascript - 通过 History.pushState() 函数传递 jQuery 对象
我正在使用 History.pushState() 函数,我正在将一个 jQuery 对象保存到推送状态对象中,但是当触发 statechange 事件时,我正在检索没有 jQuery 对象的状态对象数据,而只有“普通”对象:
控制台返回 jQuery 对象
jQuery(div#varianty.box)
但是当 statechange 事件被触发时:
控制台返回一个对象
Object { length=1, 0={...}, more...}
详细转储
是否有机会在状态对象 jQuery 对象中进行检索,如果没有,则没有很酷的方法,但我可以通过以下方式再次选择对象:
$(State.data.link.selector);
但是通过pushState对象传递jQuery对象是没有用的......
需要它$(this)
在点击事件上推送对象。
感谢您的任何建议或解决方案!:)
javascript - 如何使用 JS History API pushState 处理刷新页面
我正在创建的一个小网站(更像是摆弄)使用 AJAX 加载每个页面。以前我正在更改 url 的哈希,这很好用但很丑陋,用户可以刷新页面,它会留在同一页面上。
现在我已经切换到在 JS History API 中使用 pushState,它看起来好多了,并且后退和前进工作,但刷新没有。例如:
转到:http://example.com/page2
转到 404,因为没有真正的页面称为第 2 页。但是,如果我单击使用 pushState 方法更改 url 的按钮,它应该可以正常工作。
如何使用新的 History API 允许刷新和永久链接?
(以及搜索引擎如何处理这个问题,因为谷歌必须创建一种索引哈希 url 的方式,通过让开发人员切换到#!
,他们是否有可能在未来为历史 API 做类似的事情?)
jquery - history.pushState() 没有显示正确的 URL
我正在使用 jQuery 和 PHP,我对history.pushState
.
当我单击锚标记或链接时,一旦浏览器中的 URL 看起来像这样www.example.com/index.php/home/viewer/id
当我再次单击该链接时,浏览器中的 URL 看起来像这样
www.example.com/index.php/home/photo_viewer/index.php/home/viewer/id
,这是不正确的。
我希望浏览器中的 URL 是www.example.com/index.php/home/viewer/id
我该如何解决这个问题?
jquery - 如何使用 javascript 历史 API
在关于他们如何创建新树滑块的 github 博客文章中,他们将其作为使用的代码给出:
但是我不明白这是如何工作的?他们 AJAX 请求整个新页面,所以从<html>
包含</html>
在内,然后貌似(使用一种名为 'slideTo' 的方法??)将这些数据放入滑块元素中?当然,你最终会得到一个页面内的页面(可能有 CSS 故障)。
使用 AJAX 和 History API 时,如何只获得已更改的特定部分?还是替换了html代码(但上面的例子不是这样)?
实际的 javascript github 使用在哪里?我是对的,给出的例子不能是使用的,因为它不能正常工作吗?
ios - iOS 上的历史 API 是否损坏?(位置栏不会在 pushState 上更新)
在“我无法相信之前没有人注意到这一点”或“我必须遗漏一些东西”类别下归档:
看来,如果您window.history.pushState
在 iOS 上执行简单操作,除非它响应用户手势,否则位置栏不会更新。状态本身确实被推送(正如您可以通过点击后退按钮看到的那样)。
这是我能想出的最小的测试用例重新创建问题:
http://thelink.is/history-api-ios-bug
在支持 History API 的桌面浏览器上,您应该会看到位置栏中的 URL 每秒更改为 /0、/1 等。在 iOS 上 – 使用 iPhone(运行 iOS 4.3)和 iPad(运行 iOS 4.3.3)进行测试 – 位置栏不会更新,但点击后退按钮会带您到正确的先前位置(测试用例中的 404)没有后端逻辑来处理这些 URL)。
想法?解决方法?一个可以哭泣和拥抱的肩膀?
更新:此问题已在 iOS 5 中修复。