JS实现跨域访问iframe里的dom(1)(2)
三、重写iframe里的内容
通过designMode(设置文档为可编辑设计模式)和contentEditable(设置内容为可编辑),你可以重写iframe里的内容。代码:
- variObj=document.getElementById(‘iId‘).contentWindow;
- iObj.document.designMode=‘On‘;
- iObj.document.contentEditable=true;
- iObj.document.open();
- iObj.document.writeln(‘<html><head>‘);
- iObj.document.writeln(‘<style>body{background:#000;
- font-size:9pt;margin:2px;padding:0px;}</style>‘);
- iObj.document.writeln(‘</head><body></body></html>‘);
- iObj.document.close();
firebug测试以上代码性能,如图
注释掉
- iObj.document.designMode=‘On’;
- iObj.document.contentEditable=true;
结果如图:
效果没有变,时间效率是注释前的将近三倍。嘿嘿。那两个对象是参考网络一些人的写法,重写iframe里内容,其实没有必要用designMode和contentEditable,除非有其他的需求。
四、iframe自适应高度
有了上面的原理要实现这个相当简单,就是把iframe的height值设置成它里面文档的height值就可以。代码:
- window.onload=(function(){
- variObj=document.getElementById(‘iId‘);
- iObjiObj.height=iObj.
- contentWindow.document.documentElement.scrollHeight;
- });