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

javascript - 历史状态和更改 url 栏上的 url

HTML5 引入了一些非常简洁的工具来操作浏览器历史记录,即history.pushState/replaceState方法和onpopstate事件,因此我们不必依赖location.hashes 来为我们的 Web 应用程序显示有意义的 url。

(或者更好的是,当 IE<10 的采用可以忽略不计时,我们不必依赖哈希。)

history.pushState如果目标状态是使用 创建的,即使 URL 看起来完全不同,使用浏览器的后退和前进按钮也不会重新加载页面。

但是,与更改哈希不同的是,如果用户从浏览器的地址栏中更改 url,浏览器重新加载页面。不知何故,我怀疑是否有有效的解决方案,但问题是:有没有办法阻止浏览器重新加载页面,并强制它推送历史状态?

0 投票
1 回答
137 浏览

browser-history - 用于减少服务器请求的 HTML5 历史 API

我正在尝试开发一个搜索过滤器并利用 HTML5 历史 API 来减少发送到服务器的请求数量。如果用户选中一个复选框以应用某个过滤器,我会将该数据保存在历史状态中,这样当用户取消选中它时,我就可以从历史中加载数据,而不是从服务器再次获取它。

当用户选中或取消选中过滤器时,我正在更改窗口 URL 以匹配设置的过滤器,例如,如果用户尝试仅过滤某个类别的汽车品牌,我会更改 URL,例如“cars?filter-brand[] =1'。

但是当应用多个过滤器时,我无法确定是从服务器加载数据还是从历史记录加载数据。

目前我正在使用以下代码。

0 投票
1 回答
143 浏览

javascript - Backbone.history.start 导致安全错误 18

我在路由器初始化后启动 Backbone.history.start 时遇到问题:

它在一开始就可以工作,但后来我把 HTML 代码给了另一个人来修改它(他不知道,他做了什么特别的事情),然后它在 Chrome 中导致“未捕获的错误:SecurityError:DOM Exception 18”,尤其是在线:

在主干.js。

深入研究并与旧代码进行比较一无所获。会是什么呢?

0 投票
1 回答
892 浏览

ajax - 如何使 Wordpress 管理栏与 AJAX 加载一起工作

我正在开发一个网站,该网站使用 html5 的 push-和 popstate 结合 ajax-calls 来创建一个在 Wordpress 帖子和页面中动态加载的网站,而不会导致页面刷新。

我已经很好地工作了,但是如果您以管理员身份登录时显示在网站顶部的黑色 Wordpress 工具栏/管理栏也反映了内容的变化,我会喜欢它。有什么办法可以做到这一点?因此,例如,当我从一个帖子转到另一个页面时,管理栏中的“编辑”链接会更新。

我认为这并不像我希望的那么容易,如果无法解决,我想我会禁用前端的管理栏。但这可能是我遗漏了一些东西。

提前致谢!

0 投票
2 回答
4850 浏览

javascript - 重新加载后带有 html5Mode 的 Angular 路由给出“未找到”页面

我做了一些 Angular 路由,如下面的代码所示。

这很好用,在我将基本href设置为“/”后,它接受了一个带有“/portfolio”href的锚,但是当我转到“ http://url.com/portfiolo ”或尝试重新加载页面时当我在投资组合路线上时,它会给我一个服务器错误。我能做点什么吗?

提前致谢。

0 投票
1 回答
131 浏览

javascript - 在超时时点击动态标签时遇到问题

我有以下问题,这似乎很容易,但我不知道出了什么问题。

我想要做的是以下内容:

当我单击一个链接(例如:mysite.com/blog/blog-article.html)时,该链接的 href 会保存到一个变量中。在 javascript 中,它被阻止并定向到不同的 url(主要类别 - mysite.com/blog)。所有页面都是动态加载的。

在这个 mysite.com/blog 中有一个没有 href 的 a 元素。我会将被阻止的 url(保存在变量中)提供给 a 元素。

这工作正常,但超时后我希望它被点击。

但这行不通。任何人都知道问题可能是什么?当我将超时脚本放在萤火虫中时,它可以工作。所以它必须与 .on() 做一些事情,但足够奇怪我可以毫无问题地更改 href。

0 投票
1 回答
792 浏览

ajax - HTML5 History API:后退且不允许前进(popState?)

我有一个webpage显示用户信息的。我ajax用来允许用户在不更改网页的情况下修改此数据。

结构非常简单:

- 当用户进入个人资料时,他可以看到他的数据。

- 如果用户单击编辑按钮,则会看到一个修改数据的表单。

- 如果用户发送表单,则保存数据并再次显示静态数据(更新)。用户不应使用该Back按钮返回编辑页面。

- 如果用户在编辑时单击返回,则再次显示静态数据。

- 如果用户在看到静态数据时点击返回,他应该总是返回到上一页(不是配置文件)。

HTML5 History API用来处理Back按钮点击。当用户提交数据时我遇到了问题,因为我希望他回到以前的状态(而不是编辑)而无法继续。这就是我现在正在做的事情:

如果我使用 history.back() 就像我在上面的代码中所做的那样,除了用户能够单击Forward按钮之外,一切正常。如果我使用replaceState 或pushState,则该Forward按钮被禁用,但是用户可以单击该Back按钮并停留在同一页面中(我不希望那样)。

有没有办法在Forward不添加新状态的情况下禁用按钮?(我不希望用户点击Back并停留在同一页面)

0 投票
1 回答
4416 浏览

javascript - 在使用 History.js 进入下一页之前加载和保存状态

twitter 是如何实现这种功能的?假设我在网页的这一部分。

在此处输入图像描述

然后假设我点击了另一个页面(比如说 Dev Ops Borat)

在此处输入图像描述

点击之后。我点击后退按钮然后我注意到我回到了上一页 在此处输入图像描述

请注意,我的滚动条的位置仍然与以前相同。因此,在我转到下一页之前,它肯定会保存我浏览器的先前状态。

所以我的问题。如何使用 History.js 实现这一点?我上来是这样的。

这似乎工作正常,但是当我单击后退按钮时,上一个网页的先前状态与我离开它的状态不同。(如上面的示例)

0 投票
2 回答
186 浏览

html5-history - 覆盖后退按钮 HTML 5 History API 时导航菜单不起作用

我是历史 API 的新手。

当页面以 chrome 加载时,导航菜单停止工作,在 Firefox 中它第一次工作,但导航菜单再次停止工作。但是当我评论这个函数时,历史 API 不起作用。其他一切正常。没有 JS 或 Ajax 错误。

这是导致问题的函数:

在这里查看:http: //ddvsdakor.com/test/services/logo-designing-and-branding.w

0 投票
1 回答
257 浏览

javascript - JavaScript 的会话历史管理使用 S3 静态托管?

我目前正在开发一个主要使用 JavaScript (JS)历史的网站。

现在的问题是,此历史记录使用 URL 的路径名。例如,如果我将 S3 用作静态主机,并且第一次想要请求像 www.example.com/about 这样的 URL,S3 会将其重定向到 /about 文件夹,而不是加载根目录(www.example. com) 并让 JS 处理 /about。当然,这种行为在静态托管的情况下是绝对正常的,因此很棘手。

我只是想知道它是否可能适用于我的情况,使用 S3,其中基于根 (www.example.com/) 的每个链接都将始终引用根网站?简而言之,我希望 S3 完全忽略路径名。因此,如果我请求 www.example.com/about,它将仅加载位于 www.example.com/index.html 中的 index.html,同时保留 URL (www.example.com/about)。

如果这仍然不清楚,请考虑 JS 的 location.hash (#)。浏览器在向静态 Web 服务器发出请求时会忽略该哈希,然后在加载 Web 时,其中包含的 JS 将处理给定的哈希。所以我的情况可以通过在我的 URL 中使用“#”来完全解决,但是这次我想使用一个没有“#”的干净 URL。

谢谢您的帮助。:)