jq获取iframe中的内容

这里需要说明的是,非同源的iframe涉及跨域,我还没有遇到过,理论上是不能对没有权限的非同源iframe中内容进行操作的。
大部分同源情况下,$(window.frames[id].document)可以获取到iframe里面的document,接下来就是基本的dom操作。

另外,需要注意的是:如果你用了上面的代码没有获取到想要的内容,请思考如下问题:
1:你要操作的iframe中的dom节点,在函数运行的时候刷新出来了吗?
如果没有刷新出来,你是无论如何也获取不到的。可以用iframe的onload事件来判断是否刷新完成,或者用定时器,具体问题具体分析。
2:如果你要绑定事件,那么dom节点刷新了之后,事件还存在吗?答案是刷新了之后绑定在dom节点上的事件就相当于没了,需要利用事件委托,把事件绑定在不会变动的父节点上。

另一个方法:这里用我昨天在项目中的例子

//给iframe中的表格添加点击事件,点击表格,获取表格的内容
$("iframe[id='iframe_table']").on("load",function(){
            var iframeWindow=$("iframe[id='iframe_table']")[0];//这里的[0]是jq的方法,得到的是js节点,不是jq对象,等同于window.frames['iframe_table']
            $(iframeWindow.contentWindow.document). find("table").parent().on("click",function(e){
                alert(e.target.innerHTML);
            });
        });
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值