js获取本页面父窗口信息
时间: 2023-08-19 21:03:57 浏览: 48
如果你在 iframe 中,想要获取父窗口的信息,可以使用 `window.parent` 属性来获取父窗口对象,然后通过该对象访问父窗口中的属性和方法。例如,如果你想要获取父窗口的 URL,可以使用以下代码:
```
var parentUrl = window.parent.location.href;
console.log(parentUrl);
```
需要注意的是,如果你的 iframe 和父窗口不在同一个域下,那么出于安全考虑,你将无法获取到父窗口的信息。
相关问题
父窗口与子窗口
在Web开发中,我们可以通过`iframe`元素来嵌入其他的HTML页面,这时候就会出现父窗口和子窗口的概念。
父窗口是包含`iframe`元素的页面,也就是当前浏览器窗口中显示的页面。子窗口则是被嵌入到`iframe`元素中的页面,也就是在父窗口中显示的另一个页面。
父窗口和子窗口之间可以通过JavaScript代码来进行交互。在子窗口中,可以通过`parent`对象来访问父窗口中的JavaScript对象和方法。在父窗口中,可以通过`iframe`元素的`contentWindow`属性来访问子窗口中的JavaScript对象和方法。
例如,在父窗口中可以通过以下代码来获取子窗口中的一个元素:
```
var iframe = document.getElementById('my-iframe');
var iframeWindow = iframe.contentWindow;
var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
var element = iframeDocument.getElementById('my-element');
```
在子窗口中,可以通过以下代码来调用父窗口中的一个方法:
```
parent.myFunction();
```
需要注意的是,在跨域的情况下,父窗口和子窗口之间的JavaScript交互会受到一些限制。此时需要使用postMessage API进行跨窗口通信。
layui父窗口拿到子窗口的json数据
在layui中,父窗口可以通过子窗口的iframe元素来获取子窗口的json数据。你可以使用以下方法:
1. 在父窗口中,使用layui的layer.open()方法打开子窗口,并将子窗口的URL指定为一个页面,该页面返回要传递给父窗口的json数据。
2. 在子窗口的页面中,通过父窗口的window对象的layer.getFrameIndex()方法获取当前子窗口的索引。
3. 使用layui的layer.getChildFrame()方法获取子窗口的iframe元素。
4. 使用iframe元素的contentWindow属性获取子窗口的window对象。
5. 在父窗口中,通过子窗口的window对象来获取子窗口中的json数据。
下面是一个示例代码:
在父窗口中:
```javascript
// 打开子窗口
layer.open({
type: 2,
title: '子窗口',
content: 'child.html',
area: ['500px', '300px'],
success: function(layero, index){
// 获取子窗口的索引
var childIndex = layer.getFrameIndex(layero.find('iframe')[0]);
// 获取子窗口的iframe元素
var iframe = layer.getChildFrame('body', childIndex);
// 获取子窗口的window对象
var childWindow = iframe[0].contentWindow;
// 在父窗口中获取子窗口的json数据
var jsonData = childWindow.getJsonData();
console.log(jsonData);
}
});
```
在子窗口的child.html页面中:
```javascript
// 子窗口中的代码
function getJsonData() {
// 返回要传递给父窗口的json数据
return {
name: 'John',
age: 25,
city: 'New York'
};
}
```
请注意,这只是一个简单的示例,你可以根据自己的需求进行相应的修改。