问题标签 [html5-history]

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 投票
1 回答
3255 浏览

javascript - 在使用历史 API 时更改页面标题?

我正在尝试使用 HTML5 历史 API,并且我一直在阅读,即使您应该能够使用它来更改文档的标题,但还没有主流浏览器实现这一点。

有问题的 pushState 函数采用以下参数:

我不太确定为什么已经实现上述内容的浏览器没有实现标题方面,但事情就是这样。

我的问题是,如果我想根据历史 API 更改标题属性,最好的方法是什么?Firefox 至少表示它可能会在未来的某个时候实现上述方法:

Firefox 当前忽略此参数,尽管它可能在未来使用它。

( https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history )

这让我觉得我放在那里的任何东西都可能与将来决定实现它的浏览器发生冲突。

是否有任何确定的未来证明,“SEO 安全”的方式来做到这一点?还是我应该保留pushState代码原样,希望浏览器在将来的某个时候实现它?

0 投票
1 回答
233 浏览

gwt - 如何将 History.js 与 GWT 一起使用?

我想使用Google Web Toolkit 中的History.js

我知道 GWT 有它自己的 History 功能,但我不喜欢它,因为它使用 URI 中的哈希值,我想尽可能地使用新的 HTML5 History API。

我能想到的将 History.js 和 GWT 一起运行的唯一当前方法是用纯 Javascript(或 jQuery)编写 History.js 部分,然后手动调用 GWT 方法。

如果可以从 GWT 的 Java 文件中使用整个 History.js 功能,那就太好了。

0 投票
1 回答
178 浏览

javascript - Pathjs 路由问题

我有这条路线:

它不匹配

它匹配/anything但不匹配/anything/anything

有任何想法吗?

0 投票
1 回答
1121 浏览

javascript - 无需散列或迭代即可检测 URL 更改

我有一个谷歌即时类型的东西,其中 URL 将通过历史 API 更改。当用户从一个查询转到另一个查询,然后点击后退按钮,没有任何反应时,就会出现问题。地址栏中的 URL 改变了,就是这样。我需要检测何时按下后退/前进按钮,或 URL 何时更改,以及触发和事件。我只关心这个在现代浏览器中的工作,因为无论如何我的网站只能由现代浏览器访问。

我也不想使用迭代,因为这不是即时的,也不像事件那么简单。还有其他更简单的方法吗?谢谢。

0 投票
1 回答
2609 浏览

javascript - 如果浏览器不支持 History API,Ember 路由是否会退回到使用哈希?

Ember 文档指出,它可以设置为使用 History API 进行路由,而不是使用基于哈希的片段:

但是我没有提到如果浏览器不支持 History API 会发生什么。它会回退到使用像 History.js 这样的哈希吗?

如果没有,我是否应该检查历史 API 支持并将历史实现切换为哈希(如果不支持)?

0 投票
2 回答
1112 浏览

javascript - 困惑 - html5 历史 API 和谷歌爬虫?

根据谷歌抓取、AJAX 和 HTML5 ,谷歌可以抓取使用历史 API 的动态页面,但它表示谷歌不会在页面上执行任何 javascript。对我来说,这意味着不会进行 ajax 请求和 dom 构建,因此 google 将无法索引加载页面的内容。谁能详细说明?

0 投票
2 回答
442 浏览

javascript - HTML5 history.pushState

我正在使用 history.pushstate 方法将历史记录添加到浏览器中,并在浏览器中添加如下历史记录。

正确添加到浏览器中的历史记录。(当浏览器历史记录单击正确的页面加载时。)

但是当我单击浏览器中的后退按钮时,它不会返回..

(即我正在使用 hashchange 功能在页面中显示不同的内容)。

实际上它需要再次单击才能返回。(即两次单击返回按钮返回到历史记录中添加的上一页)。

我怎样才能让它在只需单击后退按钮时返回。

0 投票
2 回答
728 浏览

html - HTML5 History API 实际 URL 不存在

我正在学习 HTML5 历史 API。以下是我能够实现的。

我有一个页面“a.html”,其中包含所有内容和指向“b.html”的链接。当我点击链接时,我几乎所有的内容都保持不变,只是图像发生了变化。所以我要做的是编写一个点击处理程序并避免加载“b.html”[实际上我的服务器中不存在 b.html]。我创建了一个 XMLHTTPRequest 并仅获取需要替换的内容(放置在名为“xmlres.html”的文件中,仅包含一个 img 标签)并使用 pushstate() 更新 url。

一切正常。但问题是如果用户尝试复制当前 url “appname/b.html”并在另一个页面中打开,则找不到资源,因为我还没有创建“b.html”。我不想再次创建包含完整内容的 b.html,是否有任何解决方法可以解决此问题。

我应该为 URL 编写任何事件侦听器还是应该如何进行。对此的任何见解都会有很大帮助。

0 投票
1 回答
686 浏览

javascript - Facebook 聊天框不会在页面之间重新加载

我在 Facebook 中观察到了这个功能,当你在右下角打开了一个聊天框,然后你转到另一个页面,比如你朋友的个人资料,或者 Facebook 中的某个照片集页面,聊天框不会重新加载,它保留在原处(就像在背景页面顶部的单独层中一样)。

所以很自然地,我认为 Facebook 本身并没有重新加载页面,它使用history.pushstate和相关的功能来异步加载内容,并动态更改 URL(Firebug 证实了这一点,如果你点击一个朋友的名字并被带走到您朋友的个人资料页面,它实际上是一个GET被触发的请求)。因此,由于没有任何页面加载,聊天框可以闲置,就这样。

但是,在版本 10 之前pushstate不支持IE。不过,它也可以正常工作IE9。那么谁能告诉我他们是怎么做到的?他们是在使用historyAPI,还是使用不同的东西?

0 投票
1 回答
8639 浏览

jquery - history.pushState() 并单击后退/前进按钮

这是我在 ajax 加载时更改 url 的代码

当我点击返回时,上一页正在加载。如果我再次点击没有任何反应。再点击一下它就会转到第一页。经过一些测试,我发现,在每次 ajax 加载时,后退按钮都有 2 个相同的页面

在此处输入图像描述

单击前进按钮时,我还需要一个代码来获取历史记录