iframe中父子域名各不同,如何让子页面获得父页面的url
时间: 2024-03-27 16:39:52 浏览: 65
由于父页面和子页面的域名不同,存在跨域问题,所以无法直接获取父页面的URL。但是可以通过使用postMessage API实现跨域通信,让父页面向子页面发送URL信息,然后子页面接收到信息后进行处理即可。具体实现步骤如下:
1. 在父页面中使用postMessage API向子页面发送URL信息,代码如下:
```
var url = window.location.href;
window.frames[0].postMessage(url, "子页面域名");
```
2. 在子页面中添加消息监听器,接收父页面发送的URL信息并进行处理,代码如下:
```
window.addEventListener("message", function(event) {
if (event.origin === "父页面域名") {
var url = event.data;
// 处理URL信息
}
});
```
需要注意的是,安全起见,在消息监听器中应该检查消息来源是否为指定的父页面域名,避免恶意攻击。
阅读全文