Iframe滚动问题.解决方案是什么



我在不同的服务器上有两个文件,我使用iframe将一个服务器的数据显示到另一个服务器,我使用以下代码

server.php(托管在服务器A上)

<?php
header("Access-Control-Allow-Origin: *");
header('Access-Control-Allow-Methods: GET, POST');
?>
this is itest
<div style="height:1100px; background-color:pink; width:100px" >sdfsd</div>
<a href="javascript:;" onclick="goTop()">Go to Top</a>
<script>
function goTop () {
  parent.scrollTo(0,0);
}
</script>

client.php(托管在服务器B上)

<iframe src="http://serverA.com/server.php" height="1200px" >

当我点击"转到顶部"链接时,我会得到"未捕获的安全错误:阻止了具有原点的帧"。。。。"从访问具有原点的帧"。。。.协议、域和端口必须匹配。

解决方案是什么?

  1. 在父框架中创建一个将滚动到顶部的函数(您已经以goTop的形式完成了此操作)
  2. window对象上的message事件的事件侦听器中使用该函数
  3. 使用框架中文档中的parent.postMessage向父元素发送消息

有关示例,请参阅MDN postMessage页面。

相关内容

最新更新