问题标签 [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 投票
14 回答
304356 浏览

javascript - 更改浏览器中的 URL 而不使用 JavaScript 加载新页面

我怎么会有一个JavaScript操作,它可能对当前页面有一些影响,但也会改变浏览器中的 URL,所以如果用户点击重新加载或书签,那么使用新的 URL?

如果后退按钮可以重新加载原始 URL,那也很好。

我正在尝试在 URL 中记录 JavaScript 状态。

0 投票
9 回答
129609 浏览

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

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

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

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

http://html5demos.com/history

0 投票
3 回答
12994 浏览

html - 检测是否支持 HTML5 History

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

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

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

0 投票
1 回答
9828 浏览

javascript - 使用 History.js 单击后退按钮时恢复内容

我已经在本地测试应用程序上实现了 History.js。一切似乎都正常,但是如果我在浏览器中按下后退按钮,以前的内容不会恢复。

当用户按下后退按钮时,我是否真的必须再次手动加载内容(即进行另一个 ajax 调用)?那么github是如何做到的呢?我看到他们在单击代码树中的后退按钮时没有进行另一个 ajax 调用。

这是我的代码:

data.clips 是一个 json 数组,其中包含 html 对象的 id 作为键和实际的 html 内容作为值。例如

'#header' => '标题 div 中的内容'

如前所述,替换工作正常。我在标题中输出一个随机数。每次单击链接都会在标题中吐出另一个随机数。但是,如果我按下后退按钮,数字保持不变,只会恢复标题(也是随机数)。

0 投票
5 回答
3971 浏览

javascript - Hashtags(片段标识符)VS Javascript History API

哪一个更好?使用片段标识符...

...还是新的 Javascript History API?

或者我应该两者都用?(通过后备)

方面:

  • 兼容性/支持
  • 速度
  • 方便
0 投票
2 回答
1890 浏览

javascript - html5 历史导航:除页面加载外未触发 popstate

给定一个带有 ajax 导航的 webapp,您打算使用 html5 的历史导航。

但是:绑定到它不会触发的 popstate 事件。除了页面加载,当它是:

如果 HTML5 可用(检测正确,演示在 Chrome 中的效果与 FF 一样好):

什么不起作用:

  • 单击链接时不会调用 popstate 回调 historyChangeHandler()。也就是说,打印的是 clicked,而不是事件。

我尝试了什么:

  • 使用 setTimeout 推迟 pushState 调用。
  • e.preventDefault(); 并返回 true 而不是 false
  • 也附加到 div-s 并返回 true

有什么作用:

  • historyChangeHandler() 在页面加载时被调用。
  • historyChangeHandler() 在按下后退按钮时被调用。
  • historyChangeHandler() 在按下前进按钮时被调用。
  • historyChangeHandler() 如果从控制台调用 history.pushState({url: "/test"}, "", "/test") !

有什么我想念的线索吗?

0 投票
2 回答
3406 浏览

html5-history - HTML5 History API:幸存于清晰的历史?

History API使得在浏览器历史中存储状态对象成为可能。现在试试这个演示(但它与任何其他的行为相同,选择你最喜欢的:)):

  1. 单击一些链接以建立一些历史
  2. 清除您的浏览器历史记录(完整或仅针对此站点)
  3. 你仍然可以穿越历史

我预计清除历史会产生影响,但事实并非如此......
有人可以解释这种行为吗?

0 投票
1 回答
252 浏览

html - HTML 5 中的历史 API

我正在使用 Google chrome,并且我已经使用 Dive into HMTL 5 中提到的一种检测技术进行了测试,以支持 History API。但是下面的代码似乎不起作用。谁能让我知道我错过了什么?

for 循环,其中我希望 url “try.html”在浏览器的历史记录中插入 20 次,似乎不起作用。我从一个名为“try.html”的页面调用此函数,其中函数“demo”在页面加载时执行。页面“try.html”只有一行普通文本。我想要做的是,当用户在加载页面“try.html”后单击浏览器的后退按钮时,他仍将留在同一页面上,因为历史记录应该包含 20 个条目同一页面,即“try.html”,但事实并非如此。为什么?

0 投票
1 回答
36514 浏览

jquery - jQuery绑定popstate事件未通过

我正在为 History API 编写一个小演示。我正在为此苦苦挣扎:

当我单击“上一个”按钮时,它会记录“弹出:未定义”...

但如果我这样做,事情就会像预期的那样工作:

这次它记录'pop:[object Object]'......

所以就像 jQuery 没有将事件对象传递给回调一样。
jQuery 有问题吗?还是我搞砸了什么?

0 投票
1 回答
15307 浏览

javascript - History.pushstate 有回调吗?

我的 Google-fu 什么也没有。

当你这样做时:

是否有关联的窗口回调?

我知道有这个:

当用户点击后退按钮时,这非常适合聆听。但是,我想在 URL 发生变化时随时收听,但我不知道该怎么做。

URL 更改时是否有全局回调?