今天遇到了一个问题,需要实现页面跳转到下一页同时页面返回的时候看不到这个页面,经过认真的百度呀,找到了一个方法:

window.location.replace("http://www.baidu.com");

这个replace()方法的作用是:跳转页面,删除历史缓存,无法回退,嗯,就很有用,涨见识啦。

为了进一步拓展思路呀,我就把

https://www.jianshu.com/p/5f46b6409225

大佬的拓展链接贴出来,参考参考。

 

1. window.location

  1. href、assign()、replace() 跳转页面

href 属性 和 assign()方法 用于跳转页面功能一样,只是写法不同,保留缓存历史,可回退

 // href 是属性,赋值即调用
 window.location.href = "http://www.baidu.com";
window.location.assign("http://www.baidu.com");

replace()方法 跳转页面,删除历史缓存,无法回退

window.location.replace("http://www.baidu.com");
  1. 刷新页面
    重新加载当前页面
window.location.reload()
  1. 获取和设置当前页面 url 的相关信息
console.log(window.location.href); //完整url:协议名.域名:端口号/路径/?参数#hash
console.log(window.location.protocol); // 协议号
console.log(window.location.host); //域名和端口号
console.log(window.location.hostname); //域名
console.log(window.location.port); // 域名后的端口号
console.log(window.location.pathname); // 端口号后的路径
console.log(window.location.search); // 参数 格式:?id=1
console.log(window.location.hash); // # hash参数

2. window.history

需要有历史缓存,才可操作

window.history.forward(); // 浏览器前进
window.history.back(); // 浏览器后退


window.history.go(-1); // 浏览器后退
window.history.go(0); // 刷新页面
window.history.go(1); // 浏览器前进
window.history.go(num); // 跳转到指定的历史记录页

// 功能:切换到指定url,不重新加载页面
// state:状态对象可以是任何可以序列化的对象,JSON对象,(获取方式:window.history.state)
// name:标题名称,浏览器兼容性极差,建议传 ''
// url:新历史记录条目的URL,相对或者绝对路径,不传代表当前页面url(可直接传:?参数=参数值),注意:url必须同域,否则无效
history.pushState(state, name, url);
history.replaceState(state, name, url);
console.log(window.history.length); // 获取缓存历史的条数 最少时 1

// 使用 pushState 和 replaceState 时,调用此事件
window.addEventListener("popstate", function (e) {
  const url = window.location.href;
  console.log("url);

  console.log(e.state); // 获取页面参数 state 对象
});

3. window 打开和关闭新窗口


// 保留当前页面,打开子窗口
// url:打开子窗口的路径
// name:打开子窗口的名称
// 宽高:设置打开子窗口的宽高,默认100%
// newWindow:返回子窗口的window,可对子窗口进行操作
const newWindow = window.open(url,name,宽高);
window.open("http://www.baidu.com",'新标题','width=200,height=100');

// 关闭当前页面
window.close();


作者:暴躁程序员
链接:https://www.jianshu.com/p/5f46b6409225
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。