window.location.href 与 window.open 有何区别

window.location.href 和 window.open 都是用来实现页面跳转的,但它们之间存在一些区别:

window.location.href

window.location.href = "/csdn/" + tab + "/index.html";

它会改变当前窗口的URL和加载新页面,相当于在当前标签页/窗口中进行页面重定向。

当你设置 window.location.href 的值时,浏览器会立即停止当前页面的所有活动并开始加载新地址指向的页面。

window.open

  • 它会在一个新的浏览器窗口或标签页中打开指定的URL,不会影响当前窗口的内容。
  • 如果没有指定窗口参数或者目标名称(例如 _blank),则默认在新窗口中打开链接。
window.open("/csdn/" + tab + "/index.html", "_blank");

当然,如果你想在当前窗口或标签页中打开链接,并覆盖当前页面内容,你也可以这样使用 window.open,一般不推荐

window.open("/csdn/" + tab + "/index.html", "_self");

这里的 "_self" 表示在当前窗口或标签页中打开链接。不过,请注意,由于现代浏览器的安全策略,特别是对于弹窗窗口的限制,直接使用 window.open 可能会被浏览器阻止或放入通知中心,尤其是当它是由非用户直接操作触发的时候(比如响应鼠标点击以外的事件)。

  • window.open() 函数通常用来打开一个新的浏览器窗口或标签页,但当第二个参数设为 _self 时,它的行为与直接修改 window.location.href 类似。
  • 在这种情况下,"_self" 表示在当前窗口或标签页中打开指定的 URL,因此它也会导致当前页面被替换为指定的新页面。
  • 虽然两者效果相同,但 window.open() 方法通常还允许您指定其他的窗口目标,例如 _blank 用于新建标签页,或者 _parent、_top 等用于框架内的导航。

总结来说,如果你想在当前窗口中跳转页面,使用 window.location.href;如果你想在一个新的窗口或标签页中打开链接,使用 window.open

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值