2011-08-11 21 views
0

我想在打开的窗口中编写脚本和iframe元素,在Firefox和Chrome中可以正常工作,但在IE中不能。在IE中插入脚本和iframe标记

我的代码如下:

var mywindow = window.open(url,'child',params); 
mywindow.onload = writeToWindow; 

function writeToWindow(){ 
     var myScriptEle = document.createElement('script'); 
     myScriptEle.type = "text/javascript"; 
     myScriptEle.text = " some script"; 

     var myIframe = document.createElement("IFRAME"); 
     myIframe.id = "childwindow"; 
     myIframe.name = "childwindowname"; 
     myIframe.src = MyframeUrl; 

     if(mywindow){ 
     mywindow.document.getElementsByTagName('body')[0].appendChild(myScriptEle); 
      mywindow.document.body.appendChild(myIframe); 
     } 
} 

遇到错误

在此先感谢“支持没有这样的接口”,请让我知道,如果有任何变通的IE

回答

0
var mywindow = window.open(url,'child',params); 
writeToWindow(); 

function writeToWindow(){ 
    var content = '<script type="text/javascript">'; 
    content += 'function updatePage(){ '; 
    content += 'var myiframe = document.createElement("IFRAME");'; 
    content += 'myiframe.id = "myIframe";'; 
    content += 'myiframe.name = "iframe_js";'; 
    content += 'myiframe.className = "iframe_js";'; 
    content += 'myiframe.src ="http://stackoverflow.com"'; 
    content += '</script>'; 
    if(mywindow){ 
      mywindow.document.open(); 
      mywindow.document.writeln('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'+content+'</head><body onload="updatePage()"><div></div></body></html>'); 
      mywindow.document.close(); 
    } 
} 
0

那么这很容易,getElementsByTagName在IE中不受支持(或者它或者它不应该做它应该做的)!

对于这样的事情,你最好得到像jQuery这样的库。这将帮助你编写代码,将在所有的浏览器,并不会花费你的时间小时搞清楚为什么东西并不在浏览器x或y工作

+0

感谢您的回复,是否有任何工作用Jquery出去用? – kkchaitu