相关疑难解决方法(0)

在浏览器中检测后退按钮

我必须检测用户是否点击了后退按钮.为此,我正在使用

window.onbeforeunload = function (e) {
}
Run Code Online (Sandbox Code Playgroud)

如果用户单击后退按钮,它可以工作.但是,如果用户单击F5或重新加载浏览器按钮,也会触发此事件.我该如何解决?

javascript jquery

73
推荐指数
5
解决办法
28万
查看次数

使用Javascript:如果没有选项卡或窗口的历史记录,如何创建一个"返回"链接,将用户带到链接?

编辑2:答案似乎都没有用.甚至不是我之前标记为这个问题的答案.任何帮助表示赞赏.谢谢.

首先,我搜索了一个关于创建"返回"链接的方法,该链接允许用户返回上一页,这有两种方法:

<a href="javascript:history.go(-1)">[Go Back]</a>
Run Code Online (Sandbox Code Playgroud)

和...

<a href="#" onclick="history.go(-1);return false;">[Go Back]</a>
Run Code Online (Sandbox Code Playgroud)

这两个中的哪一个是更好的选择?为什么?(另外,请介绍一下浏览器兼容性.)

这是问题的一半.现在,如果我的第一页是用户访问的,那么"返回"链接将不起作用,对吧?(因为窗口或标签没有预先存在的历史记录.)在这种情况下,我希望链接回退并将用户带到http://example.com.

即如果历史存在,则用户将被带到上一页,如果不存在,则将其带到http://example.com.

我怎么做?希望有人能提供帮助.

编辑:请注意我不懂JavaScript,所以请你的答案解释.谢谢.

html javascript

58
推荐指数
6
解决办法
17万
查看次数

window.pushState 不会增加历史记录长度

我有以下尝试操作堆栈的代码window.history

  console.log("before:" + window.history.length);
  window.history.pushState(null, null, '/page1');
  console.log("after:" + window.history.length);
Run Code Online (Sandbox Code Playgroud)

尽管我添加了一个状态,但在beforeand中总是打印相同的内容:after

before:50
after:50
Run Code Online (Sandbox Code Playgroud)

为什么pushState不增加历史长度?顺便说一句,50即使我刷新页面,长度也总是如此。

javascript html5-history

5
推荐指数
0
解决办法
753
查看次数

标签 统计

javascript ×3

html ×1

html5-history ×1

jquery ×1