在IE中iframe或者frame的contentWindow属性可以省略,但在Firefox中如果要对iframe对象进行编辑则
必须指定contentWindow属性。
但是虽然ie是默认的,有时候还是会出现问题,建议无论是哪个浏览器,都需要写上该属性。
function EnableEdit() { var editor; editor = document.getElementById("HtmlEdit").contentWindow; // 针对IE浏览器, make it editable editor.document.designMode = 'On'; editor.document.contentEditable = true; // For compatible with FireFox, it should open and write something to make it work editor.document.open(); editor.document.writeln('<html><head>'); editor.document.writeln('<style>body {background: white;font-size:9pt;margin: 2px; padding: 0px;}</style>'); editor.document.writeln('</head><body></body></html>'); editor.document.close(); } <iframe ID="HtmlEdit" MARGINHEIGHT="1" MARGINWIDTH="1" width="100%" height="312"> </iframe> <html> <body> <script> var ifr = document.createElement("iframe"); document.body.appendChild(ifr); var ifrdoc = ifr.contentWindow.document; var s = fixingHTB.innerHTML; //进入可编辑模式前存好 ifrdoc.designMode = "on"; //文档进入可编辑模式 ifrdoc.open(); //打开流 ifrdoc.write(s); ifrdoc.close(); //关闭流 ifrdoc.designMode ="off"; //文档进入非可编辑模式 </script> </body> </html>