我想在打开的窗口中编写脚本和iframe元素,这在Firefox和Chrome中运行良好,但在IE中则不行。
我的代码如下:
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 :(得分:0)
嗯,这很容易,IE中不支持getElementsByTagName(或者它不应该做它应该做的事情)!
对于像这样的事情你最好得到像jQuery这样的库。这将帮助您编写适用于所有浏览器的代码,并且不会花费您数小时的时间来确定为什么东西在浏览器x或y中不起作用
答案 1 :(得分: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();
}
}