JS location.href跳出框架打开新页面

后面在框架中,当判断登录失效后要返回登录页面,但登录页面却在框架内打开,我想让它直接跳出框架打开,这里不是打开新窗口.

echo "<script language=\"javascript\">alert('登录已失效或没有登录,请登录!');location.href='login.php';</script>";
原内容是上边这样的,要想让它跳出框架打开登录页,方法:
echo "<script language=\"javascript\">alert('登录已失效或没有登录,请登录!');window.top.location.href='login.php';</script>";
其实就是在跳转链接前加一个window.top。如果在打开新窗口,可以使用js的window.open("url","打开方式"); 来打开新窗口。

转载于:https://www.cnblogs.com/cfinder010/p/3957163.html

JavaScript 中,如果希望使用 `window.location.href` 跳出 `<iframe>` 框架,可以使用 `top` 对象来实现。`top` 表示最外层的窗口,无论当前页面嵌套了多少层 `<iframe>`,都可以通过 `top.location.href` 将页面重定向到最外层窗口中[^1]。 例如,以下代码可以在当前页面跳出 `<iframe>` 框架并跳转到指定的 URL: ```javascript top.location.href = "https://www.example.com"; ``` 此方法会将整个浏览器窗口的地址替换为新的 URL,从而实现跳出框架的效果[^2]。 如果需要判断当前页面是否被嵌套在 `<iframe>` 中,可以使用以下代码: ```javascript if (top.location !== self.location) { top.location.href = self.location.href; } ``` 该代码通过比较 `top.location` 和 `self.location` 来判断当前页面是否处于 `<iframe>` 中。如果两者不相等,则说明当前页面被嵌套,此时将最外层窗口的地址设置为当前页面的地址,从而实现跳出框架并保留原页面内容的效果[^3]。 此外,如果页面中存在多层嵌套的 `<iframe>`,也可以使用 `parent` 来操作父窗口。例如,如果当前页面嵌套在两层 `<iframe>` 中,可以使用 `parent.parent.location.href` 来实现跳转到更上层的窗口。 ### 示例代码 ```javascript // 跳转到最外层窗口 top.location.href = "https://www.example.com"; // 判断是否被嵌套,并跳出框架 if (top.location !== self.location) { top.location.href = self.location.href; } ``` ### 注意事项 - 使用 `top.location.href` 时需要考虑跨域问题,如果当前页面与顶层窗口的页面不在同一个域,则浏览器可能会阻止此类操作。 - 在某些浏览器的安全策略中,可能会限制从 `<iframe>` 中修改 `top.location.href` 的行为,因此需要确保页面之间的域名一致,以避免受到同源策略的限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值