iframe返回上一页面时禁止刷新上一页面
时间: 2023-07-18 13:45:44 浏览: 72
在 iframe 中返回上一页面时,如果不想刷新上一页面,可以使用以下方法:
1. 使用 history.pushState() 方法
在 iframe 中返回上一页面时,可以使用 JavaScript 的 history.pushState() 方法修改浏览器历史记录,从而避免刷新上一页面。例如,你可以在子页面中添加以下代码:
```javascript
history.pushState(null, null, document.URL);
window.addEventListener('popstate', function () {
history.pushState(null, null, document.URL);
});
```
上述代码会在子页面中执行,它会在浏览器历史记录中添加一个新的状态,并且监听 popstate 事件,当用户点击浏览器的后退按钮时,再次调用 pushState() 方法,从而保持历史记录不变。这样就可以实现在 iframe 中返回上一页面时不刷新上一页面的效果。
2. 使用 session storage
另一种方法是使用 session storage,在子页面中保存一个标识符,当返回上一页面时,检查标识符是否存在,如果存在则不刷新上一页面。例如:
在子页面中添加以下代码:
```javascript
sessionStorage.setItem('noRefresh', '1');
```
在父页面中添加以下代码:
```javascript
window.addEventListener('popstate', function () {
var noRefresh = sessionStorage.getItem('noRefresh');
if (noRefresh === '1') {
sessionStorage.removeItem('noRefresh');
return;
}
location.reload();
});
```
上述代码会在子页面中设置 sessionStorage,当返回上一页面时,父页面会检查 sessionStorage 中是否存在标识符,如果存在则不刷新页面,否则刷新页面。这样就可以实现在 iframe 中返回上一页面时不刷新上一页面的效果。