alert(1)被注释时
demo1.htm尚未加载完毕
就被调用了div1,这时,div1可能还没有加载进来,报错
而有了前面那个alert,时间上有一个停顿,所以div1已经被加裁了就不会报错

解决方案 »

  1.   

    demo1.htm被加载的顺序是在alert(document)后面还是同时还是其他仅仅是因为div1未被加载吗?
      

  2.   

    document.getElementById('divIframe').innerHTML = s;//父页面加载demo1.htm
    但页面加载需要一定的时间,浏览器要解析demo1.htm的DOM,
    解析完毕后才能用getElementById这样的DOM方法来调用其中的元素。
    alert(1)没有被注释,就给了浏览器足够的时间来加载demo1.htm,反之则没有。
      

  3.   

    这样可以遮盖这个问题
    function f()
    {    
        s = '<iframe id="iframe1" src="demo1.htm"></iframe>';    
        document.getElementById('divIframe').innerHTML = s;
       // alert(1);
       setTimeout("show()",50);
    }function show()
    {
    alert(document.frames('iframe1').document.getElementById('div1').innerHTML);
      
    }
      

  4.   

    window.onload=f;
    function f()
    {    
        s = '<iframe id="iframe1" src="demo1.htm"></iframe>';    
        document.getElementById('divIframe').innerHTML = s;
        //alert(1);
    alert(document.frames('iframe1').document.getElementById('div1').innerHTML);
    }
    先看看是不是页面加载问题!
      

  5.   

    hbhbhbhbhb1021(天外水火(我要多努力)) 
    //不过最好写在子页面上保险些可否再解释一下~~
      

  6.   

    写在子页面中,BODY的onload事件中,这样就保证执行顺序,如果照上面我那样写,虽然大部分情况可以解决,但是如果客户端遇到网速慢,网络风暴等情况还是会报JS错误