问题标签 [hashchange]

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 投票
8 回答
22036 浏览

javascript - 使用 Ajax 时如何保持浏览器历史同步?

我正在使用 ASP.NET Ajax 编写一个简单的相册应用程序。
该应用程序使用异步 Ajax 调用来预加载相册中的下一张照片,而无需更改浏览器中的 URL。

问题是当用户点击浏览器中的后退按钮时,应用程序不会返回到上一张照片,而是导航到应用程序的主页。

有没有办法欺骗浏览器将每个 Ajax 调用添加到浏览历史记录中?

0 投票
14 回答
304356 浏览

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

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

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

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

0 投票
7 回答
112056 浏览

javascript - 检测 URL 中的后退按钮/哈希更改

我刚刚在http://ritter.vg建立了我的新主页。我正在使用 jQuery,但非常少。
它使用 AJAX 加载所有页面 - 我将其设置为通过检测 URL 中的哈希来允许添加书签。

但我无法让后退和前进按钮工作。

有没有办法在不使用 setInterval 循环的情况下检测何时按下后退按钮(或检测哈希何时更改)?当我尝试使用 0.2 和 1 秒的超时时,它与我的 CPU 挂钩。

0 投票
4 回答
3964 浏览

javascript - 为 Ajax 应用程序启用返回/fwd 键事件

我有一个在 AJAX 上工作的应用程序。但是我想在其中具有导航功能。为了欺骗 url,我正在更改 location.hash,以生成 URL。但是如果我使用 back/fwd,只有 url 改变,但页面不会重新加载。如何覆盖hstory.back以重新加载页面。

0 投票
4 回答
2119 浏览

javascript - Javascript 历史框架的经验

当用户选择多个更改页面行为的选项时,我正在寻找一个 javascript 历史框架来处理页面内的导航。

页面上有多个人工制品会改变页面的数据加载,我想将其存储为一组堆叠的行为。在更广泛的意义上,出于同样的原因,我想将此作为工具包添加到我未来的 Web 项目中。

我主要用 JQuery 在 ASP.NET 中编写,但我现在只担心 JQuery。我确实用 PHP、Python 和 Perl(取决于演出)编写了其他项目,所以它必须与平台无关。

我一直在网上寻找并找到了一些,但只有一个(在 OReilly 上报道)看起来符合要求。我已经开始使用它,但我想知道其他人正在使用哪些工具包以及其他人会推荐什么。

因此,如果您对历史框架、在 Ajax 中处理后退按钮(等)有任何经验,我很想听听您使用了什么以及它是如何工作的。这真的会帮助我对图书馆做出最终选择。

谢谢,

小号

0 投票
13 回答
415973 浏览

javascript - 如何检测位置哈希的变化?

我正在使用 Ajax 和哈希进行导航。

有没有办法检查window.location.hash更改是否像这样?

http://example.com/blah #123http://example.com/blah #456

如果我在文档加载时检查它,它会起作用。

但是如果我有基于#hash 的导航,当我按下浏览器上的后退按钮时它不起作用(所以我从 blah#456 跳转到 blah#123)。

它显示在地址框中,但我无法用 JavaScript 捕捉它。

0 投票
5 回答
5667 浏览

javascript - 使用后退按钮时 AJAX 结果已丢失

所以我建立了一个类似于 Twitter 的分页系统,其中显示 20 个结果,用户可以单击一个链接来显示接下来的 20 个或所有结果。显示的结果数量可以由 URL 末尾的参数控制,但是,这不会使用 AJAX 更新,因此如果用户单击其中一个结果然后选择返回,他们必须从 20 开始返回结果。

我的一个想法是,如果我在使用 AJAX 提取结果时更新 URL,它应该(我希望)使用户能够在不丢失显示的结果的情况下来回移动。

这实际上是可能的还是我完全错了?

另外,我将如何更改 URL?我有一种方法可以使用 javascript 编辑 URL 并将其设置为变量,但我不确定如何将该变量应用于 URL。

这里的任何帮助都会很棒!

附注:我正在使用 jQuery 的 load() 函数来完成我所有的 AJAX。

0 投票
3 回答
11184 浏览

jquery - jquery历史插件

我正在使用这个插件:

http://plugins.jquery.com/project/history

在本页面:

http://www.crtaci.info/index.php?autocom=majice

我不知道为什么,但似乎我无法弄清楚该怎么做才能让它发挥作用......我想我需要更多的睡眠...... :)

0 投票
2 回答
7144 浏览

javascript - jquery ajax 历史和书签插件

有一些用于处理历史记录和书签的插件,例如: http: //plugins.jquery.com/project/history。不知何故,它看起来并不是一个完整的解决方案。例如,在一个页面上,您可能有一个包含多个复选框、文本框等的过滤器。您希望您的页面历史记录功能能够更新所有这些控件,并在其中一些控件的值发生更改时更新 url。使用 jquery 历史插件,您必须编写所有代码(甚至解析来自 url 的哈希值)。这个问题有更完整的解决方案吗?

0 投票
3 回答
425 浏览

javascript - 锚定 AJAX 和 SEO 解决方法?

你们都知道如何使用那些 300 毫秒的触发器来构建 AJAX 站点,以检查 URL 中的锚点(哈希链接),然后使用 AJAX 加载正确的页面。但是,这些锚链接对搜索引擎来说毫无意义 =(

我想过做一些解决方法。所有 JS 代码都保持不变,但是,这个小东西(我使用 JQuery,抱歉):

然后,将正文中的锚链接替换为普通链接,为非 JavaScript 用户和搜索引擎构建相应的普通页面(仍然包含所有 JS 代码)。对于普通访问者,您可以将普通链接即时转换为哈希值并立即加载 AJAX 内容。对于那些试图加载通过搜索引擎找到的某些页面的人 - 他们会,之后访问者将继续使用 ajax 导航......不知何故(请记住,那些普通的直接页面仍然包含 JS 代码)。

我只是想确保我的假设是正确的。他们是吗?

更新:不好的是,当用户使用 for ex 直接进入一些内部页面时。/portfolio地址,然后他会继续使用/portfolio#contacts或类似的 URL,这些 URL 不是很漂亮,但仍然有效(我的意思是/portfolio#contacts会显示联系人)。