如何用jQuery或JavaScript捕获访问URL存为变量并重定向到新页面
你之前使用document.referrer获取的是用户进入当前页面前的上一级页面地址,所以只能拿到Google这类外部来源站地址,无法获取用户当前正在访问的本站页面。正确做法是直接读取当前页面地址window.location.href,编码后作为参数传递给splash引导页。
1. 全局重定向脚本修改
把原来的全局脚本替换为以下内容:
$(document).ready(function() { if (typeof Cookies.get('secondvisit') === 'undefined') { // 编码当前页面地址,避免特殊字符导致参数解析异常 const originalPage = encodeURIComponent(window.location.href); // 拼接跳转参数后重定向到splash引导页 window.location.href = `/index-donate.php?redirect=${originalPage}`; } })
2. splash引导页(index-donate.php)逻辑补充
在引导页添加以下代码,实现跳转回原页面的逻辑,同时设置cookie避免后续重复重定向:
$(document).ready(function() { // 解析URL参数获取原页面地址 const params = new URLSearchParams(window.location.search); let targetUrl = params.get('redirect'); // 兜底处理:无跳转参数时默认跳转到首页 if (!targetUrl) { targetUrl = '/'; } else { targetUrl = decodeURIComponent(targetUrl); } // 绑定「前往网页」按钮的点击事件,按钮ID请和你实际页面的元素ID对应 $('#jump-btn').click(function(e) { e.preventDefault(); // 设置全局生效的cookie,有效期可自行调整,此处示例为365天 Cookies.set('secondvisit', '1', { expires: 365, path: '/' }); window.location.href = targetUrl; }) })
注意事项
- 上述Cookie操作语法适配常用的
js-cookie库,如果你使用自研的Cookie操作工具,对应调整读写语法即可 - Cookie的
path参数必须设置为/,否则可能出现站点子页面无法读取Cookie,导致重复触发重定向的问题 - 该方案会完整保留原页面的查询参数、锚点信息,不会出现跳转后内容丢失的问题
内容的提问来源于stack exchange,提问作者eberswine
相关产品推荐
相关产品推荐

