【发布时间】:2020-05-04 16:26:25
【问题描述】:
我正在使用两个网站。我在一个网站项目中有一个带有母版页的 aspx 页面。我想在另一个也有母版页的页面中将此页面用作我的第二个网站中的 iframe。当我这样做时,我得到了两个母版页,而我想从我的 iframe 中删除母版页。
简单来说,如何从不同域的顶部窗口访问子窗口的元素?
首先,我尝试从页面 preInit 事件中的代码替换母版页,但我无法获取子页的母版页。所以这对我不起作用。
第二个解决方案我试图从 jquery 中删除它。在这里,我无法访问 iframe 的内容,因为它来自不同的域。所以,我使用了 Post-message 但仍然出现同样的问题。这是我的代码,我试过了。
在父页面中:
window.addEventListener("message", function (e) {
alert(e.origin);
if (e.origin !== 'http://localhost:xxxxx') {
return;
}
alert(e.data);
}, false);
在 iframe 页面中:
$(document).ready(function () {
window.parent.postMessage("I am loaded", "*");
});
我在我的 postmessage 中收到消息,但仍然无法访问 iframe 中的元素(在我的情况下为 e.source)。
请帮忙!
【问题讨论】:
标签: javascript html iframe postmessage