跨域情况下,如何通过 JavaScript 获取目标网页的高度?

跨域情况下,如何通过 javascript 获取目标网页的高度?

跨域情况下如何通过 javascript 获取目标网址网页高度

在跨域的情况下,获取其他网页的高度可能有所限制。以下是一个需要考虑的示例:

由于父页面无法直接访问目标网页的 window 对象,因此无法直接获取其高度。要解决这个问题,可以考虑以下解决方案:

使用 postmessage api

立即学习“Java免费学习笔记(深入)”;

postmessage api 允许页面对不同域进行通信。要使用此 api,需要在目标网页和父网页中分别实现消息发送和接收功能。具体步骤如下:

在父页面中,添加以下脚本:

const iframe = document.getelementbyid('c_iframe');iframe.onload = () => {  // 向目标网页发送消息  iframe.contentwindow.postmessage('getheight', '*');};window.addeventlistener('message', (event) => {  if (event.origin !== 'www.baidu.com') {    return;  }  // 接收目标网页返回的高度并设置 iframe 高度  const height = event.data;  iframe.height = height;});

在目标网页中,添加以下脚本:

window.addEventListener('message', (event) => {  if (event.data !== 'getHeight') {    return;  }  // 向父页面发送网页高度  const height = document.documentElement.offsetHeight;  event.source.postMessage(height, '*');});

注意:如果无法控制目标网页,此解决方案将无法使用。此时,获取目标网页高度是不可能的。

以上就是跨域情况下,如何通过 JavaScript 获取目标网页的高度?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1496846.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
完整指南:使用 Nodejs 进行消息传递
上一篇 2025年12月19日 18:57:38
如何将数组前x位元素优雅地插入另一个数组的指定位置?
下一篇 2025年12月19日 18:57:42

相关推荐

发表回复

登录后才能评论
关注微信