问题标签 [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.

0 投票
4 回答
96672 浏览

internet-explorer - Internet Explorer 是否支持 pushState 和 replaceState?

有人知道 Internet Explorer 是否支持处理浏览器历史记录history.pushState()的和history.replaceState()方法吗?考虑到这些只是在 Firefox 4 中实现,我没有屏住呼吸,但是有人知道它们是否会在 IE9 中实现吗?

0 投票
9 回答
129609 浏览

javascript - 使用 HTML5 History API 的好教程(Pushstate?)

我正在研究使用 HTML5 History API 来解决 AJAX 加载内容的深度链接问题,但我正在努力起步。有没有人知道任何好的资源?

我想使用它,因为这似乎是一种很好的方法,可以让那些被发送链接的人可能没有打开 JS。当有 JS 的人向没有 JS 的人发送链接时,许多解决方案都会失败。

我最初的研究似乎指向 JS 中的 History API 和 pushState 方法。

http://html5demos.com/history

0 投票
1 回答
2363 浏览

javascript - HTML5 历史教程

任何人都知道任何好的教程/指南来解释使用带有 Pushstate 和 Onpopstate 事件的 HTML5 History 的正确方法吗?

0 投票
16 回答
111501 浏览

javascript - 如何通过 history.pushState 获得有关历史记录更改的通知?

因此,既然 HTML5 引入history.pushState了更改浏览器历史记录,网站开始将其与 Ajax 结合使用,而不是更改 URL 的片段标识符。

可悲的是,这意味着这些呼叫无法再被onhashchange.

我的问题是:是否有可靠的方法(黑客?;))来检测网站何时使用history.pushState?该规范没有说明任何有关引发的事件(至少我找不到任何东西)。
我尝试创建一个外观并替换window.history为我自己的 JavaScript 对象,但它根本没有任何效果。

进一步解释:我正在开发一个 Firefox 插件,它需要检测这些变化并采取相应的行动。
我知道几天前有一个类似的问题询问侦听某些DOM 事件是否有效,但我宁愿不依赖它,因为这些事件可能因许多不同的原因而生成。

更新:

这是一个 jsfiddle(使用 Firefox 4 或 Chrome 8),显示调用onpopstate时未触发pushState(或者我做错了什么?随时改进它!)。

更新 2:

另一个(侧面)问题是window.location使用时没有更新pushState(但我认为我已经在这里读到了这个)。

0 投票
2 回答
40141 浏览

html - 哪些浏览器支持 HTML5 History API?

有人可以指出支持/不支持 HTML5 History API 的浏览器的兼容性图表吗?

规格:http
://www.w3.org/TR/html5/history.html 教程:https ://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

0 投票
1 回答
2290 浏览

javascript - 使用 -window.history.pushState 更新页面/URL

我有兴趣让我的应用程序在不刷新页面的情况下更新,并且 URL 中没有 # 哈希。

我见过使用哈希的 jQuery BBQ,但后来出现了 github 最近关于 pushState 的博客文章,看起来很棒。

有谁知道任何教程显示如何使用它?或者也许可以提供一个示例来说明如何实现这一点,以便在网络应用程序上使用带有某些链接的 pushState?

谢谢

0 投票
5 回答
6723 浏览

javascript - 使用 onPopState 和 pushState 时我应该使用什么 js 来处理后退按钮点击

我正在使用 pushState 来更改网站的网址:

效果很好,但是现在后退按钮不起作用。我相信我需要使用遍历历史堆栈并呈现适当页面的 onPopState 编写自己的后退和前进按钮行为。诀窍是当“返回”为空时,它应该执行返回按钮通常会执行的操作(在用户进入我的站点之前“返回”到页面)。

这似乎是非常标准的行为,是否有我可以使用的配方/一些标准代码?

0 投票
3 回答
12994 浏览

html - 检测是否支持 HTML5 History

如何检查您使用的浏览器是否支持 HTML5 历史 API?

正如您在此处看到的http://caniuse.com/#search=history只有 chrome +ff4 和其他几个支持这一点,如果他们不能支持这一点,我希望做其他事情。

我怎样才能为这个检查做某种 if 语句?

0 投票
2 回答
10215 浏览

javascript - 可以使用 pushState

有谁知道确定是否可以使用 pushState 的库?

我正在使用这个:

但我刚刚发现 Safari 5.0.2 中存在一个错误,即使上述测试通过,它也无法工作:http: //support.github.com/discussions/site/2263-line-links-broken

我在想可能还有其他问题,有人可能已经找到了它们并将它们包裹起来,但我还没有找到任何东西。

编辑: @Crescent Fresh

从我所看到的看来,pushState 似乎推送到历史堆栈并更改了 url,但没有更新 location.pathname。在我的代码中,我使用 setInterval 来检查路径是否已更新。

在 Safari 5.0.2 中,当 pushState 更改 url 时 location.pathname 不会更改。这适用于其他浏览器和 Safari 版本。

0 投票
3 回答
2651 浏览

javascript - HTML5 历史 pushState 链接返回

在今天早些时候看到另一篇关于 HTML5 History API 的帖子并阅读了Mozilla的教程之后,我已经能够实现一个基本的工作演示,使用这个 API 来允许 URL “重写”,而无需重新加载页面并且不使用哈希。

我的问题是:假设您有一个用户来到一个页面,点击其中一个使用历史 API 编写新 URL 的链接。然后用户为页面添加书签。现在我假设它现在会将重写的 URL 加入书签。因此,当用户在几天后回来并尝试转到已添加书签的页面时,它不会返回 404 吗?那么你如何实现一种方法来解决它呢?

这是假设我重写的 URL 指向一个不存在的位置。