无法通过 jQuery 访问 iFrame 的类的高度
Posted
技术标签:
【中文标题】无法通过 jQuery 访问 iFrame 的类的高度【英文标题】:Can't access class' height of iFrame via jQuery 【发布时间】:2021-08-14 01:07:57 【问题描述】:我想通过 iFrame 在我的网站上添加 Instagram 帖子。由于帖子可以有不同的高度(来自不同的比率),我需要检查“嵌入”类的高度,即 Instagram 页面的正文标签中的高度。
所以我通过以下方式包含 iFrame:
<p class="embedded-iframe">
<iframe class="instagram-embed" id="iframe-1" src="https://www.instagram.com/p/COvuizXoHPD/embed/captioned/" frameborder="0" scrolling="no" allowfullscreen="allowfullscreen" data-iframe-id="1">
</iframe>
</p>
没有任何进一步的 CSS,iFrame 的宽度为 300 像素,高度为 150 像素。
现在在 iFrame 的 body-tag 中,有一个带有“Embed”类的 div,并且这个类具有我为 iFrame 设置样式所需的高度。 所以我试图得到这个类的高度,但它不起作用。这是我的代码:
$(document).ready(function ()
$("iframe").load(function()
console.log("iFrame loaded");
var test = $("iframe").contents().find(".Embed").height();
console.log(test);
);
);
第一个日志条目被正确写入控制台,但 var test
的值是 null。
我也尝试过不同的课程,但每次都是同样的问题。
【问题讨论】:
您无法访问第 3 方 iframe 的内容 【参考方案1】:尝试使用find("html").html()
获取内容
示例:
var htmlIframe=$('#iframe-1').contents().find("html").html();
htmlIframe.find(".Embed").height();
【讨论】:
这会在控制台中带来一个错误:Firefox 中的Uncaught TypeError: htmlIFrame is undefined
和 Chrome 中的 Cannot read property 'find' of undefined
以上是关于无法通过 jQuery 访问 iFrame 的类的高度的主要内容,如果未能解决你的问题,请参考以下文章
无法通过 api 调用 pauseVideo 访问 youtube 嵌入式 iframe