Try:
var o = document.createElement("iframe");//这里这样写更保险
o.id = 'addNodeFrame';
document.body.appendChild(o);alert(o.contentWindow.body.innerHTML)//主要问题在这里。

解决方案 »

  1.   

    晕死,好久不发帖,不会Check了,应该是o.contentWindow.document.body
      

  2.   

    谢谢Amwpfiqvy,不过我又发现个问题。代码:
    <html>
    <head>
    <SCRIPT>
    function fnNavigate()
    {
    var o = document.createElement("iframe");
    document.body.appendChild(o);
    for(i=0;i<document.all.length;i++){
    if(document.all(i).tagName=="IFRAME"){
    alert(document.all(i).contentWindow.document.body.innerHTML);
    }
    }
    alert(o.contentWindow.document.body.innerHTML)
    }
    </SCRIPT>
    </HEAD>
    <BODY>
    <BUTTON onclick="fnNavigate();">Navigate Frames</BUTTON>
    <IFRAME SRC=""></IFRAME>
    </BODY>
    </HTML>
    这样是对的,但是for(i=0;i<document.all.length;i++){
    if(document.all(i).tagName=="IFRAME"){
    alert(document.all(i).contentWindow.document.body.innerHTML);
    }
    }
    var o = document.createElement("iframe");
    document.body.appendChild(o);
    alert(o.contentWindow.document.body.innerHTML)  这么写就错了,不知是什么原因
      

  3.   

    时间问题,o是一个iframe,它的内容还没打开,你就急着去读contentWindow,还跟着一大串在后面,当然有问题了。o.contentWindow. ...这串一般用在iframe的onload事件中或以后。
      

  4.   

    恩 已经发现问题,谢谢
    加了这个应该会好点
    try{
    if(o.document.readyState=='complete'){
    alert(o.contentWindow.document.body.innerHTML);
    }else if(o.document) {
    o.document.onreadystatechange = function () {
        if(o.document.readyState=='complete'){
        alert(o.document.readyState)    
        alert(o.contentWindow.document.body.innerHTML);    
        }
    }
     }
    }catch(e){}