问题标签 [popstate]

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 回答
7218 浏览

javascript - 触发popstate事件时如何获取上一页的url?

下面是一个简单的pushStateandpopstate事件示例:

触发popstate事件时,显示当前页面的url。

我的问题是:

这种情况下触发事件时如何获取上一页的url?PS我试过了,但没有显示任何东西。popstate


document.referrer

0 投票
0 回答
281 浏览

javascript - 在 popstate 事件之外从 history.pushState 访问 event.state

我正在尝试将 popstate 事件的新 URL与用户窗口中上次访问的 URL 进行比较。

我认为使用 event.state 会很简单,但我似乎只能从 onpopstate 内部访问这个对象,而没有别的。也许我做错了什么,但是 3 天的文件搜索没有任何回报。

我想做的很简单:

我正在使用 history.pushState 和 history.replaceState 在不同的地方设置事件对象,但同样,我想在任何我想访问它的数据的地方获取这个对象。

0 投票
1 回答
844 浏览

javascript - 如何防止页面加载时的popstate事件(android浏览器)

如何防止popstate页面加载时触发事件?(这发生在 Android 浏览器上)

在 Android 浏览器上运行以下代码段并查看结果。(替代链接 ro 运行代码段:https ://jsfiddle.net/heoceze0/1 )

0 投票
1 回答
1402 浏览

javascript - 使用 history.pushState() 将两次推送到历史记录后未触发 Popstate 事件

我正在开发一个 eshop,其中项目在 iframe 的页面顶部打开。我在用着

history.pushState(stateObj, "page 2", http://localhost:8888/product-category/tyger/vara-tyger/?view=product&item=test-4);

为了让客户复制当前 url 并使用它转到当前页面,并在 iframe 中打开项目。另外,我正在使用

window.addEventListener('popstate', manageHistory);

为了让客户使用浏览器的后退和前进按钮进行导航(关闭和打开 iframe)。

但是,当打开一个产品(调用history.pushState一次),使用浏览器的后退按钮,打开另一个产品(history.pushState再次调用),然后再返回时,manageHistory()不会调用。客户被带到第一个打开的产品,但如果再次按下,manageHistory()就会被呼叫。

我想manageHistory()在第二次打开的产品页面上按回时被调用,以便添加代码以在按回时将客户重定向到类别的起始页面。

我已经尝试为两个打开的产品添加事件监听器,也只为第一个产品添加事件监听器。任何想法可能是什么问题?

0 投票
0 回答
950 浏览

ipad - Ipad - popstate 中的 window.confirm 功能不起作用

如果按下浏览器的后退按钮,我有这个示例代码用于跟踪。该代码适用于计算机上的 IE、Firefox 和 Safari。当我在 Ipad 上使用 Safari 检查代码时,按下后退按钮时不会显示 .confirm 对话框。我已经在 iOS 9.3 上使用 Safari 9 进行了测试。Safari 的设置允许弹出。

我不知道如何使代码在 Ipad Safari 上运行。有人有同样的问题吗?

我在这里创建了一个测试站点。

0 投票
0 回答
1037 浏览

javascript - 带有 window.history.pushState 的 Ajax 调用与 popstate“后退”按钮一起使用

在用户浏览的程序中,他们希望 window.history.pushState 生成的历史记录与浏览器中的后退按钮一起使用(因为无论出于何种原因,他们都不会单击应用程序中的后退按钮)

为了抓住他们点击后退按钮,我只需使用:

我如何将他们历史记录中的最后一个 URL 获取到 window.location 并将它们发送到那里,或者更好的是如何让浏览器尊重推送的历史记录?

或者无论如何都可以得到 URL 是什么。

0 投票
1 回答
7948 浏览

javascript - 获取 window.popstate 上的新 URL

有什么方法可以在window.popstate触发时获取新页面的 url?

0 投票
1 回答
12158 浏览

javascript - addEventListener("popstate") 没有为 .document 触发

使用 Ajax 并尝试使用 .document 对象在实际的 Ajax 页面上创建 popstate 事件处理程序:

不幸的是,这似乎永远不会触发。

我的意图是在页面重新加载后 popstate 事件触发器将自动消失。

0 投票
0 回答
484 浏览

javascript - 返回按钮后加载ajax

我试图做一个网站,我正在使用 ajax 加载一些内容。问题是,当我单击提交按钮时,加载了另一个页面,但是当我回来时,不再加载 ajax。我希望我的页面保持原样。

我知道我可以使用 pop state 事件来存储数据并使用 pushState 更改历史中的链接,但它不起作用。弹出状态事件仅在我单击按钮时起作用,但在我提交表单时不起作用,即使调用 pushState 也是如此。

这是我的代码 ** 已评论

那是我的流行状态功能:

那是我的推送状态功能,在我的 sumbit click 上调用:

我希望这很清楚,谢谢你的关注,我很感激

0 投票
1 回答
94 浏览

jquery - 历史浏览器翻倍

我有问题。
这是一种情况:我有一个 iframe,里面有一个网站。我也有播放器的包装。
我需要这个单例播放器,当用户通过网站上的链接访问时,它不会停止或刷新。
使用 postMessage 在包装器和 iframe 之间进行可爱的对话,我尝试触发历史更改(onpopstate),因此如果用户单击“转发”的“返回”,我的 iframe 会重新加载。
我不明白为什么我的活动只在故事的第一页有效(可能不是。我仍然不明白)。WHYYY OMG为什么历史的每一个状态都在那里翻倍?
像这样:

  1. 音乐集
  2. 艺术家
  3. 艺术家编号 34786
  4. 搜索页面
  5. 返回(现在我应该有一个艺术家页面。我的 iframe 正确刷新,但包装器具有相同的 url 和标题)
  6. 再次返回(现在更改包装器的 url)

这是我的触发器代码。请告诉我这种不良行为的原因是什么?

包装面

iframe 侧

但是这个触发器无论如何都不起作用......