问题标签 [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.
javascript - 历史状态和更改 url 栏上的 url
HTML5 引入了一些非常简洁的工具来操作浏览器历史记录,即history.pushState
/replaceState
方法和onpopstate
事件,因此我们不必依赖location.hash
es 来为我们的 Web 应用程序显示有意义的 url。
(或者更好的是,当 IE<10 的采用可以忽略不计时,我们不必依赖哈希。)
history.pushState
如果目标状态是使用 创建的,即使 URL 看起来完全不同,使用浏览器的后退和前进按钮也不会重新加载页面。
但是,与更改哈希不同的是,如果用户从浏览器的地址栏中更改 url,浏览器会重新加载页面。不知何故,我怀疑是否有有效的解决方案,但问题是:有没有办法阻止浏览器重新加载页面,并强制它推送历史状态?
browser-history - 用于减少服务器请求的 HTML5 历史 API
我正在尝试开发一个搜索过滤器并利用 HTML5 历史 API 来减少发送到服务器的请求数量。如果用户选中一个复选框以应用某个过滤器,我会将该数据保存在历史状态中,这样当用户取消选中它时,我就可以从历史中加载数据,而不是从服务器再次获取它。
当用户选中或取消选中过滤器时,我正在更改窗口 URL 以匹配设置的过滤器,例如,如果用户尝试仅过滤某个类别的汽车品牌,我会更改 URL,例如“cars?filter-brand[] =1'。
但是当应用多个过滤器时,我无法确定是从服务器加载数据还是从历史记录加载数据。
目前我正在使用以下代码。
javascript - Backbone.history.start 导致安全错误 18
我在路由器初始化后启动 Backbone.history.start 时遇到问题:
它在一开始就可以工作,但后来我把 HTML 代码给了另一个人来修改它(他不知道,他做了什么特别的事情),然后它在 Chrome 中导致“未捕获的错误:SecurityError:DOM Exception 18”,尤其是在线:
在主干.js。
深入研究并与旧代码进行比较一无所获。会是什么呢?
ajax - 如何使 Wordpress 管理栏与 AJAX 加载一起工作
我正在开发一个网站,该网站使用 html5 的 push-和 popstate 结合 ajax-calls 来创建一个在 Wordpress 帖子和页面中动态加载的网站,而不会导致页面刷新。
我已经很好地工作了,但是如果您以管理员身份登录时显示在网站顶部的黑色 Wordpress 工具栏/管理栏也反映了内容的变化,我会喜欢它。有什么办法可以做到这一点?因此,例如,当我从一个帖子转到另一个页面时,管理栏中的“编辑”链接会更新。
我认为这并不像我希望的那么容易,如果无法解决,我想我会禁用前端的管理栏。但这可能是我遗漏了一些东西。
提前致谢!
javascript - 重新加载后带有 html5Mode 的 Angular 路由给出“未找到”页面
我做了一些 Angular 路由,如下面的代码所示。
这很好用,在我将基本href设置为“/”后,它接受了一个带有“/portfolio”href的锚,但是当我转到“ http://url.com/portfiolo ”或尝试重新加载页面时当我在投资组合路线上时,它会给我一个服务器错误。我能做点什么吗?
提前致谢。
javascript - 在超时时点击动态标签时遇到问题
我有以下问题,这似乎很容易,但我不知道出了什么问题。
我想要做的是以下内容:
当我单击一个链接(例如:mysite.com/blog/blog-article.html)时,该链接的 href 会保存到一个变量中。在 javascript 中,它被阻止并定向到不同的 url(主要类别 - mysite.com/blog)。所有页面都是动态加载的。
在这个 mysite.com/blog 中有一个没有 href 的 a 元素。我会将被阻止的 url(保存在变量中)提供给 a 元素。
这工作正常,但超时后我希望它被点击。
但这行不通。任何人都知道问题可能是什么?当我将超时脚本放在萤火虫中时,它可以工作。所以它必须与 .on() 做一些事情,但足够奇怪我可以毫无问题地更改 href。
ajax - HTML5 History API:后退且不允许前进(popState?)
我有一个webpage
显示用户信息的。我ajax
用来允许用户在不更改网页的情况下修改此数据。
结构非常简单:
- 当用户进入个人资料时,他可以看到他的数据。
- 如果用户单击编辑按钮,则会看到一个修改数据的表单。
- 如果用户发送表单,则保存数据并再次显示静态数据(更新)。用户不应使用该Back
按钮返回编辑页面。
- 如果用户在编辑时单击返回,则再次显示静态数据。
- 如果用户在看到静态数据时点击返回,他应该总是返回到上一页(不是配置文件)。
我HTML5 History API
用来处理Back
按钮点击。当用户提交数据时我遇到了问题,因为我希望他回到以前的状态(而不是编辑)而无法继续。这就是我现在正在做的事情:
如果我使用 history.back() 就像我在上面的代码中所做的那样,除了用户能够单击Forward
按钮之外,一切正常。如果我使用replaceState 或pushState,则该Forward
按钮被禁用,但是用户可以单击该Back
按钮并停留在同一页面中(我不希望那样)。
有没有办法在Forward
不添加新状态的情况下禁用按钮?(我不希望用户点击Back
并停留在同一页面)
javascript - 在使用 History.js 进入下一页之前加载和保存状态
twitter 是如何实现这种功能的?假设我在网页的这一部分。
然后假设我点击了另一个页面(比如说 Dev Ops Borat)
点击之后。我点击后退按钮然后我注意到我回到了上一页
请注意,我的滚动条的位置仍然与以前相同。因此,在我转到下一页之前,它肯定会保存我浏览器的先前状态。
所以我的问题。如何使用 History.js 实现这一点?我上来是这样的。
这似乎工作正常,但是当我单击后退按钮时,上一个网页的先前状态与我离开它的状态不同。(如上面的示例)
html5-history - 覆盖后退按钮 HTML 5 History API 时导航菜单不起作用
我是历史 API 的新手。
当页面以 chrome 加载时,导航菜单停止工作,在 Firefox 中它第一次工作,但导航菜单再次停止工作。但是当我评论这个函数时,历史 API 不起作用。其他一切正常。没有 JS 或 Ajax 错误。
这是导致问题的函数:
在这里查看:http: //ddvsdakor.com/test/services/logo-designing-and-branding.w
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。
谢谢您的帮助。:)