function back(num = -1) { window.history.go(num) } 将这段代码修改为如果上一页历史记录为登陆也则跳转至上上页
时间: 2024-02-13 15:06:05 浏览: 178
可以使用以下代码来实现:
```
function back(num = -1) {
var previousUrl = document.referrer; // 获取上一页的链接
if (previousUrl.indexOf("login") !== -1) { // 判断上一页是否为登陆页
num = -2; // 如果是登陆页,将跳转步数修改为 -2,即返回上上页
}
window.history.go(num); // 跳转页面
}
```
这段代码中,我们添加了判断上一页是否为登陆页的逻辑。首先通过 `document.referrer` 获取上一页的链接,然后使用 `indexOf` 方法判断链接中是否包含 "login" 这个关键字,如果存在,则将跳转步数 `num` 修改为 -2,即返回上上页。最后调用 `window.history.go(num)` 方法进行页面跳转。
需要注意的是,由于浏览器的安全机制,`document.referrer` 只能获取 HTTP 引用头中的信息,因此如果上一页与当前页不在同一个域名下,或者上一页使用了 HTTPS 协议而当前页使用了 HTTP 协议,则无法获取上一页的链接。因此在实际开发中,可能需要根据具体的应用场景来选择是否使用 `document.referrer`。
相关问题
function back(num = -1) { window.history.go(num) }如何排除上一页是登录页
您可以在登录页面设置一个标志,例如将登录页的url设置为特定的url,然后在back函数中检查当前页面的url是否为登录页的url,如果是,则跳过该页面,直接返回前两个页面,可以使用`history.go(-2)`实现。以下是代码示例:
```
function back() {
if (document.referrer.indexOf('login') !== -1) {
window.history.go(-2);
} else {
window.history.back();
}
}
```
这个back函数首先检查当前页面的referrer是否包含"login",如果是,则返回前两个页面,否则返回前一个页面。请注意,referrer属性可能会受到浏览器的限制,因此这种方法可能不是100%可靠。
function back(num = -1) { window.history.go(num) }如何修改这段代码判断上一页是否是登陆页,是就跳转到上上页
可以使用以下代码来实现该功能:
```
function checkLogin() {
var previousUrl = document.referrer; // 获取上一页的链接
if (previousUrl.includes("login")) { // 判断上一页是否为登陆页
back(2); // 跳转到上上页
} else {
back(); // 返回上一页
}
}
checkLogin(); // 调用函数进行判断
```
这段代码中,我们使用 `includes` 方法来判断上一页链接中是否包含 "login" 这个关键字,如果包含,则调用 `back(2)` 跳转到上上页,否则调用 `back()` 返回上一页。需要注意的是,这里我们只判断链接中是否包含 "login",而不是判断链接是否以 "login.html" 结尾,因为有可能登陆页的链接不是以 .html 结尾。
阅读全文