深层iframe的body修改

xiaoxiao2021-03-01  21

//通过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

转载请注明原文地址: https://www.6miu.com/read-4150031.html

最新回复(0)