怎么获取iframe里的html节点,javascript – 如何获取iframe元素的innerHTML内容

本文介绍了如何使用JavaScript获取iframe内的元素,特别是当需要获取按钮等特定内容时。通过使用`contentDocument`或`contentWindow.document`属性可以访问iframe的DOM。然而,需要注意的是,如果iframe指向不同域,则由于同源策略限制,无法获取其内容。示例代码展示了如何在iframe加载完成后获取元素,并处理可能的null情况。此外,强调了正确创建和附加元素到DOM的重要性,以及使用`onload`事件确保iframe已经加载完成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要获取iframe内的按钮,这可能有效:

var iframe = document.getElementById("frame1");

var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;

var button = iframeDocument.getElementById("mybutton");

显然,您可以使用iframeDocument导航以获得所需内容,并使用您似乎知道的.innerHTML.如果iframe指向其父级以外的域,则无法获取iframe的内容.

更新:

您需要使用代码在准备好后获取框架的文档及其内容,因此您应该使用以下内容:

window.onload = function () {

var greeting = "hola, ";

var div1 = document.createElement("div");

var frame1 = document.createElement("iframe");

frame1.id = "frame1";

frame1.onload = function () {

alert("loaded");

var iframe = document.getElementById("frame1");

var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;

var button = iframeDocument.getElementById("mybutton");

if (button == null) {

alert("button is null");

}

};

frame1.src = "http://onemoredemo.appspot.com";

div1.appendChild(frame1);

document.body.appendChild(div1);

};

重要的是如何创建元素并将其附加到DOM – 而不仅仅是使用innerHTML. iframe的onload方法是为了保证它已准备就绪.实际的操作代码在jsFiddle中不起作用,因为跨域问题,但是你应该需要的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值