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

javascript - 窗口推送状态,后退/前进按钮刷新

我正在尝试让页面刷新或加载以前存在的任何数据。

我有:

在我的 PHP 中,我将其设置为根据上面的“排序”变量加载正确的脚本。因此,如果我刷新页面,它就会起作用。我只是希望人们能够点击他们的浏览器并加载以前的数据。

如果有人可以帮助解释它或给我看一个例子,那就太棒了。

谢谢!

0 投票
1 回答
625 浏览

javascript - 为什么调用 History.pushState()(或 .replaceState())会触发“popstate”事件?

我正在根据 AJAX 调用更改 url。

我的 JS 中还有一个 popstate 事件。

一旦调用了 pushState,就会触发 popstate。如何防止这种情况?

0 投票
0 回答
71 浏览

php - 尝试使ajax php后退按钮起作用

我尝试使用 pushState() 和 popstate() 使 php 和 ajax 后退按钮工作。我让 pushState 以某种方式工作,但 popState 不是。

下面的java脚本。

0 投票
0 回答
130 浏览

jquery - MVC/Ajax:当使用“JavaScript”导航到某个页面时,如何放弃会话或从应用程序中注销?

我有一个 MVC 应用程序,当单击浏览器Back按钮时,我可以在浏览器历史记录中导航。

我有以下 MVC 代码来构建链接:

这是一个JavaScript处理历史回溯的问题:

但是,当返回login页面时,一旦我单击Forward按钮,我就可以在没有经过身份验证的情况下返回应用程序。

我该怎么办,所以当浏览器的历史记录返回Login页面时,用户退出并且他的会话被放弃?

0 投票
0 回答
567 浏览

ajax - 在 popstate 上检测向前或向后

我正在使用 ajax 将新的帖子页面加载到我网站的内容部分,并使用 pushstate 每次编辑 url。我正在寻找一种在浏览器上单击前进和后退按钮时移动的方法。

我的想法是创建一个帖子 ID 数组,每次我前进时都会在列表中添加一个

但不是这个,我想为前向和后向 ID 创建两个单独的数组,因此当触发返回时,我可以在“返回”数组中获取最后一个帖子 ID 以获得我需要的内容。

我的问题是如何在 popstate 上检测向前或向后以实现这一点,或者通常是一种更好的方法来实现这一点。

0 投票
1 回答
1701 浏览

angular - 如何在移动设备上使用“后退按钮”关闭组件?

我创建的配置文件组件看起来像弹出窗口。该组件可以显示在每个页面上(它不依赖于路由)。我想关闭它是智能手机上的“后退”按钮,所以我使用HostListener注释和window:popstate。它可以工作,但是如果我单击后退按钮 ProfileComponent 正在关闭,但浏览器也会转到上一页。我尝试使用preventDefault()修复该问题:

但仍然无法正常工作。有没有办法覆盖后退按钮操作?

0 投票
1 回答
78 浏览

apache - .ht 访问在 Amazon linux 服务器上不起作用

我一直在做一个使用 pushstate 来管理站点导航的项目。该项目目前托管在 Godaddy 共享托管帐户上,我刚刚使用 HTTPD 设置了 Amazon EC2 Linux 服务器,并将文件传输到新服务器。我必须添加一个 .htaccess 文件来帮助进行 pushstate 导航,这样当我尝试访问http://example.com/page1时它就不会出现 404 。

当我尝试访问godaddy 服务器上的http://example.com/page1之类的页面时,它的行为应如此 - 它不会尝试访问实际页面,而是使用根页面并附加 url 路径 /page1 和我的javascript 负责以视觉方式显示 page1 的内容。然而,在亚马逊服务器上,它把我带到了一个 404 页面。我对 .htaccess 和推送状态还很陌生,所以我不得不放弃我在堆栈溢出时能找到的东西来帮助我让它工作(至少在 Godaddy 服务器上)。这是文件:

不确定我是否使用了正确的方法,也不知道为什么一台服务器会给我不同的结果?

谢谢

编辑

所以我已经在我的 httpd.conf 文件中将 allowOveride 设置为 all ,如下所示:

在这里值得注意的是,我使用的是 HTTPD 而不是 Apache2 - 我不确定这是否会有所作为,但似乎是相同的过程。我还使用重新启动了服务器,sudo service httpd restart但结果仍然相同。我确实尝试了 vhost 选项,虽然我不记得我为它写的确切内容,但我将它应用于 */80,所以我相当确定它写得正确。

我可以采取任何其他步骤来进一步调试它并尝试准确指出问题所在吗?

0 投票
0 回答
378 浏览

javascript - pageshow 和 onpopstate 在 ios 中不起作用

当我单击按钮提交内容时,它将具有显示 div 的功能

我正在尝试在 safari (iphone) 上使用 pageshow 事件来隐藏这个 div。但是使用后退按钮时它似乎只工作一次。

然后我尝试在 safari (iphone) 上使用 onpopstate 来隐藏这个 div,在 iphone5S 和 ios9 中它可以工作,但在 iphone6 和 ios10 中它不起作用。

0 投票
1 回答
791 浏览

jquery - 了解 Jquery SPA 实现

我正在尝试使用 JQuery 创建一个 SPA 网站。我知道如何使用history.pushState$(window).on('popstate')但我有几个问题。目前我有一个处理 popstate 事件和导航链接的 router.js 文件。我将链接放在自定义属性(data-navId="templates/page/page.html")或 href 中并使用 $(e).preventDefault(); . 用户点击链接并被$('.page-content').load('url', function() {})执行history.pushstate

1)我是否被迫在每个模板中包含包含这些功能的 router.js 文件?我想要一个仅包含这些功能的 html。模板应仅包含 HTML 及其相应的脚本。我设法做到了这一点,但是如果用户刷新页面,模板将显示没有样式或任何东西。使用哈希是答案吗?或者,如果用户关闭浏览器并激活“恢复以前的页面”选项,则模板将仅加载其 html。

过去我开发的 SPA 页面不使用哈希popstatehistory.pushState但我必须在每个文件中包含所有 html,然后调用$('.page-content').load(url + ' .page-content > *', function() {});以避免刷新错误。

我也知道 facebookpopstate用于现代浏览器和hashchange旧版浏览器,可能包括 Modernizr.js 或一些自定义库。但是路由器如何在不包含在每个模板中的情况下工作?

提前致谢。

0 投票
1 回答
312 浏览

javascript - 防止 Ajax 网站在按下后退按钮后跳回顶部

我目前正在开发一个支持 ajax 的网站。浏览网站和浏览器的历史记录效果很好,但有一个问题我无法解决。

当用户按下返回按钮时,最后一页再次出现。但是,虽然我通过 popstate 事件将垂直滚动位置设置为前一个位置,但它又跳回顶部...

我知道代码到目前为止有效,因为早些时候我在 window.scrollTo() 之后发出了警报,并且在我看到的冻结期间,页面位于正确的位置。但在继续之后,它跳到了顶部。是否可能有另一个(默认)事件在后台滚动到顶部?

感谢帮助