iframe中的子窗口使用history.back 无效
时间: 2024-02-26 20:55:27 浏览: 164
是的,这是因为 `history` 对象是浏览器的窗口历史记录,而 `iframe` 中的子窗口和父窗口是不同的文档,它们拥有各自独立的历史记录。因此,在子窗口中使用 `history.back` 方法只会让子窗口自身的历史记录返回上一个状态,而不会影响到父窗口的历史记录。如果你想要在父窗口中返回上一个状态,可以通过在父窗口中使用 `window.history.back()` 方法来实现。
相关问题
在 iframe 页面中使用 document.domain
在 iframe 页面中使用 `document.domain` 属性可以实现跨子域名的 Cookie 共享。具体实现方法如下:
1. 在主页面和 iframe 页面中都设置 `document.domain` 属性为主域名,例如 `example.com`。
```javascript
document.domain = 'example.com';
```
2. 在主页面中设置 Cookie。
```javascript
document.cookie = 'name=value; domain=example.com';
```
3. 在 iframe 页面中访问主页面的 Cookie。
```javascript
var cookie = document.cookie;
```
这样,在主页面和 iframe 页面中就可以共享 Cookie 了。需要注意的是,`document.domain` 属性只能设置为主域名或其父域名,否则会抛出异常。另外,使用这种方法进行跨域 Cookie 共享时,应该确保主域名和子域名的 Cookie 名称不冲突,以免产生不必要的问题。
iframe里面使用top.layer.open报错
这个报错通常是由于在一个iframe中调用了top.layer.open函数,但是在顶层窗口(即父窗口)中没有引入layer库所致。
解决这个问题的方法是在父窗口中引入layer库,确保在iframe中调用top.layer.open函数时可以正确地找到该函数所在的库。你可以在父窗口中添加以下代码来引入layer库:
```
<script src="layer.js"></script>
```
其中,"layer.js"是layer库的文件路径,你需要根据实际情况修改该路径。
如果你已经在父窗口中引入了layer库,但仍然出现了该错误,可能是由于父窗口和iframe中引入的layer库版本不一致所致。此时,你需要确保父窗口和iframe中引入的layer库版本一致。