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

jquery - Jquery Asual Address - 返回按钮 PopState

我正在尝试使用Asual Address插件,以便我的后退按钮适用于 ajax 调用。我对这项工作的工作原理感到非常困惑,而且我发现的每个教程都说要暗示它不同。我无法让他们中的任何一个工作。

我有一个简单的 ajax 页面。它只是调用图像:

Javascript:

我的 HTML 看起来像这样:

使用上面的代码,当我单击一个链接时,它会进行 ajax 调用,加载图片并更改 url。这工作正常。我的问题是后退按钮。当我单击后退按钮时,网址会更改为上一个网址,但页面上的内容保持不变。我认为这与“popstate”有关,并将其添加到我的 js 中。我只是不知道该怎么做。

有人可以向我解释一下 popstate 是如何工作的,以及我如何将它添加到上面的代码中,以便我的后退按钮可以工作。谢谢你。

完整页面

0 投票
1 回答
14522 浏览

ajax - HTML 5 - Ajax popstate 和 pushstate

我试图弄清楚如何将这个 pushstate 和 popstate 用于我的 ajax 应用程序。我知道有一些插件,但我目前正在尝试学习如何以原始形式使用它。我也知道 IE 不支持原始形式。除此之外,我需要一些帮助来理解如何使用它。

它的 pushstate 部分非常简单。现在我有:

这会很好地更改我的网址并将其添加到我的网址堆栈中。我有另一个函数,如下所示:

第二个函数在调用时也会更改 url。现在我有了那部分,我正试图弄清楚如何使用 popstate。现在我有它如下

因此,如果您可以使用两个链接对我的页面进行映像,则一个调用 loadForm 函数,另一个链接调用 loadForm2 函数。当我单击每个链接时,表单通过 ajax 加载就好了,并且 url 会发生应有的变化。当我点击后退按钮时,网址将回滚到上一页的网址,但页面内容再次加载当前表单而不是之前的表单。当我点击后退按钮时,它正在进行 ajax 调用(firebug),就好像它正在尝试加载以前的表单一样,但不是运行以前的 ajax 调用,而是运行当前的 ajax 调用。所以我的 url 回到了前一个 url,但加载的表单或调用的 ajax 调用与最近的页面加载(而不是前一个页面加载)相同。

我不确定我做错了什么,任何帮助将不胜感激。

0 投票
1 回答
2338 浏览

javascript - history.js 可以在没有哈希的情况下链接到 URL 吗?特点?

这可能是重复的。我已经搜索过,但不确定要使用哪些术语。如果你能找到重复的,谢谢,我会删除这个问题。

我听说 history.js 是“最好的”深度链接 ajax 库,因为它对旧浏览器的兼容性最好。然而,我看到的这个库的每个演示都使用 ? 类似的角色/my/url?key=value或类似的东西。

在浏览项目的源代码树时,我真的很喜欢 github 上的滑块。例如,单击文件夹将在更改浏览器中的完整 URL 时异步加载文件夹的内容,没有任何散列或查询字符串垃圾。

有谁知道是否有一个图书馆可以做到这一点?我不反对在不兼容 html5 的浏览器中无法使用的库。我应该只使用纯 HTML5 推送状态 API 吗?

0 投票
2 回答
658 浏览

javascript - 如何在 Jquery Mobile 中恢复页面 URL?

我在 Jquery Mobile 中使用嵌套页面:

看起来像这样:

在转换时,我正在切换$.mobile.pageContainers以将嵌套页面加载到面板中,而不是加载到正文中(默认 JQM),如下所示:

这一切都按预期工作=当我在面板中加载嵌套页面时,URL更新为

我的问题在于“清理” URL,当我离开包装页面并完全进入新的 JQM 页面时

在这种情况下,URL 停留在最后一个嵌套页面,当我需要告诉 JQM 我实际上仍在包装页面上时(无论嵌套页面仍在 URL 中)。

问题: 所以我正在寻找一种将 URL 更新为正确值的方法,或者是一种将页面参数设置为“出厂默认值”的好方法,因此 JQM 永远不会知道我在嵌套页面上做了任何面板转换。

我努力了:

由于我远离 JQM 路径,我只是在寻找提示。感谢您的任何指示!

0 投票
2 回答
2713 浏览

javascript - 如何禁用 Chrome 的推送状态?(对于 Davis.js)

您如何禁用 Chrome 的 pushstate(出于测试目的)?

如果您知道一个可以轻松切换的插件,那就太好了:)

我将davis.js用于我的 pushstate 逻辑

0 投票
0 回答
387 浏览

javascript - Javascript 中的跨浏览器加载指示

我正在开发一个大量使用 pushState 的应用程序。有些页面加载速度很快,有些则需要多次调用我们的 API。我们已经能够伪造一些浏览器加载的东西视图 CSS:

这在 Windows 浏览器中可以正常工作(这在 Mac 上不是标准的),但我想要某种方式,对于每个浏览器,将浏览器置于与单击链接并进行实际页面加载时相同的状态:

  1. 顶部旋转上的加载指示器
  2. 在 Windows 中,进度指示器光标显示(这在 Mac 上的 Safari 中不会发生)

是否有浏览器工具可以做到这一点,或者我们只需要显示一些 dweeby ajax 加载指示器?

0 投票
3 回答
5873 浏览

ruby-on-rails - 如何在 Pjax 中关闭“替换 url”

我将 Pjax 与http://railscasts.com/episodes/294-playing-with-pjax?view=comments中的教程一起使用 我不需要更改 url,而且这个咖啡脚本代码不起作用:

......

$("a#flag-comments").click ->

……

$.pjax

容器:'[data-pjax-container-flag]',

替换:假,

网址:'/flag_comments'

……

任何想法?

0 投票
1 回答
695 浏览

javascript - Javascript 历史记录无法在 onpopstate 中检索值

这是我的代码:

几个问题:

  • 单击每个页面会更新导航栏 URL,但不会the title to use像我预期的那样更新标题
  • 按下它会创建警报,但值undefined8我预期的不同
0 投票
1 回答
9885 浏览

javascript - hashchange 触发 popstate

这是我正在使用的

代码:

为什么单击change hash链接会触发弹出状态,难道不应该仅在我单击change hash链接然后单击返回时才触发吗?

0 投票
1 回答
805 浏览

javascript - 带有哈希回退库的 HTML5 pushstate 以及示例和教程

我正在尝试将路由添加到我的网站,这对于其他人来说非常直观,可以接管。History.js 有效,但实施起来可能会令人困惑,并且很难找到教程和示例。我喜欢 Davis.js,但同样,教程和示例太少了。我知道还有其他的,BBQ,骨干网中的路由,jQuery 地址等等。

有没有最好的选择,它具有 pushstate 支持和回退到 hash 支持(需要跨浏览器/跨设备)以及教程和几个实现?

谢谢。