我正在构建一个包含子页面的页面,该页面将被加载到主页面的iframe中。我希望主页(外部页面)可以与iframe中的页面进行交互。我在这篇文章中尝试解决方案:SecurityError: Blocked a frame with origin from accessing a cross-origin frame,但仍然遇到跨组织的阻塞。你能帮我看看吗?
主页(外部):
<html>
<body>
<iframe id ="myFrame" src="http://blink.ucsd.edu/" target="_parent" style="
width: 100%;
height: 500px;
z-index: 999999999999999999999;
position: fixed;
top: 0;
float: left;
"> </iframe>
<script>
document.getElementById("myFrame").onload = function(){
document.getElementById("myFrame").contentWindow.postMessage('This is data','*');
};
</script>
</body>
</html>
然后,在子页面中,我添加以下脚本以接收并打印出postMessage数据
<script>
console.log('Script from proxy was loaded');
window.addEventListener('message', function(event) {
if (event.origin.indexOf(event.origin) == 0) {
console.log('Tada message from outside page was recieved');
console.log(event.data);
}
});
</script>
结果:iframe中的子页面已加载,子页面中的脚本已执行,子页面接收到来自外部的消息,但跨组织阻塞仍然存在。