深层iframe的body修改

        //通过id获取当前document下的某一个iframe的document对象
        var textDoc1 = document.getElementById("text-frm").contentDocument;
        var textDoc2 = textDoc1.getElementById("TRS_Editor___Frame").contentDocument;
        //通过标签名获取当前document下的某一个iframe的document对象
        var textDoc3 = textDoc2.getElementsByTagName("iframe")[0].contentDocument;
        //修改body中的值
        textDoc3.body.innerHTML="古德赫赫"; 

这种方法貌似ie不支持,又换了一种:

        var textDoc1 = document.getElementById("text-frm").contentWindow;
        console.log(textDoc1);
        var textDoc2 = textDoc1.document.getElementById("TRS_Editor___Frame").contentWindow;
        var textDoc3 = textDoc2.document.getElementsByTagName("iframe")[0].contentWindow.document;
        textDoc3.body.innerHTML=text1;
        textDoc3.body.innerHTML="古德赫赫"; 

之后用ie测试此方法的时候还是会有null出现,所以加上window.top

        var textDoc1 = window.top.document.getElementById("text-frm").contentWindow;
        console.log(textDoc1);
        var textDoc2 = textDoc1.document.getElementById("TRS_Editor___Frame").contentWindow;
        var textDoc3 = textDoc2.document.getElementsByTagName("iframe")[0].contentWindow.document;
        textDoc3.body.innerHTML=text1;
        textDoc3.body.innerHTML="古德赫赫";

再次测试还是不行,改成如下方式:

        var textDoc1 = window.top.document.getElementById("text-frm").contentWindow;
        var textDoc2 = textDoc1.frames[7];
        var textDoc3 = textDoc2.frames[1];                      
        textDoc3.document.body.innerHTML="古德赫赫";

最后发现是ie浏览器的版本导致编辑器的iframe有的没有加载出来,测试发现需要ie 8-10的版本支持,谷歌就并没有这些问题,心好累。。。

另外在查找资料的过程中看到了一个iframe的用法挺好的,记下来:

         <ul class="nav nav-list">
                <li class="active parent_li"><a href="BSwelcome.aspx" target="mainframe"></li>
                <li class="parent_li"><a href="MyContacts/MyInfoAssitant/BSMyInfoList.aspx?jb_id=&grade=all&&paixu=no&regs=dd&cup=1" target="mainframe"></a></li>
                <li class="parent_li"><a href="MyContacts/MyOrder/BSMyOrderList.aspx?cup=1&&sel=no" target="mainframe"></a></li>
                <li class="parent_li"><a href="MyContacts/SubmitOrder/BSSubmitOrderList.aspx?cup=1" target="mainframe"></a></li>
 </ul>
        <iframe id="ifrma1" src="BSwelcome.aspx" name="mainframe" frameborder="no" scrolling="yes"
                style="width: 100%; height: 100%;"></iframe>

通过a标签切换iframe,一般iframe要有id值,name值,而a标签链接了地址,还要多一句 target=”mainframe” 而mainframe就是iframe的name值。才不至于点击a标签直接跳过去。
此方法引用自:https://www.cnblogs.com/suizhikuo/p/4961780.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值