
跨域情况下如何通过 javascript 获取目标网址网页高度
在跨域的情况下,获取其他网页的高度可能有所限制。以下是一个需要考虑的示例:
<div class="page-work"> <iframe id="c_iframe" width="100%" height="0" scrolling="no" src="www.baidu.com"></iframe> </div>
由于父页面无法直接访问目标网页的 window 对象,因此无法直接获取其高度。要解决这个问题,可以考虑以下解决方案:
使用 postmessage api
AI 舌诊面诊问诊医疗系统 + 诊疗商城系统源码是一套结合 AI 辅助诊断与商品转化的健康类程序,基于浩创云、ThinkPHP(PHP)开发,支持微信服务号与 H5 端,适合做中医舌诊面诊问答、健康建议推送以及配套诊疗商品的运营。
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, '*');
});
注意:如果无法控制目标网页,此解决方案将无法使用。此时,获取目标网页高度是不可能的。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










