javascript - 带有后备网址的历史记录 back()
问题描述
我用这个(https://www.w3schools.com/jsref/met_his_back.asp)在我网站的感谢页面上添加了一个“继续浏览”按钮。
如果他们单击按钮,我希望能够将用户发送回 2 个页面,但是如果由于某种原因他们填写了表单并且不是来自另一个页面,那么我想添加一个后备 url,即只是主页页。
该按钮有效,但是否可以在没有历史记录的情况下添加后备网址?
这是我当前的代码:
<button onclick="goBack()" class="et_pb_button">Continue Browsing</button>
<script>
function goBack() {
window.history.go(-2);
}
</script>
解决方案
You always check for the number of entries in the History
object.
<button class="et_pb_button">Continue Browsing</button>
<script>
var url = 'www.test.com/signin'; // you need to know where you want to redirect to before hand
document.querySelector('.et_pb_button').addEventListener('click', function() {
if(window.history.length > 2) {
window.history.go(-2);
} else {
window.location.href = url;
}
});
</script>
推荐阅读
- akka - 如何知道 Akka Cluster Client 的初始联系人?
- c# - 我无法为公共变量设置值
- batch-file - 将远程服务器上的文件夹移动到远程服务器上的新位置时,如何修复附加时间戳?
- javascript - 警告反应:setState(...):只能更新已安装或正在安装的组件
- android - 第一次在 RecyclerView 中加载超过 10 个项目,GridLayoutManager 为 3 跨度计数
- protractor - 量角器:页面对象返回“承诺”而不是文本
- postgresql - 是否可以/如何在 GCP postgresql 中创建运算符类?
- android - 在 Android 的 onClickListener 中多次观察到 LiveData
- rest - 包含外键 OnToMany 映射的 POST REST 请求
- excel - VBA:循环文件系统并查找最新文件