window.open后不管news_preview.aspx页是否已经完全读到客户端都要执行他以后的语句
如果news_preview.aspx页还为完全下载完就使用它里面的Obj就会出现楼主遇到的情况
所以是"间歇性"的可以在news_preview.aspx页的body的onload事件里取得opener里你需要的值

解决方案 »

  1.   

    同意楼上,弹出的窗口的生成和你当前的窗口的javascript执行是不同的两个线程是并发执行的,所以先后没有办法预测。你可以尝试将content的内容作为表单参数传到你的ASP页面去显示:
    function preview()
    {    
      var content = document.getElementById("txtContent").value;
      var win = window.open('news_preview.aspx?content='+content,'','width=750,height=500,scrollbars=yes');
          win.moveTo(screen.width/2-375,80);
    }
    这样还需要做一个URL的编码,例如空格为20%之类我手头暂时没代码:p对于太长内容的信息传到window.open出来的窗体我一直都没有想到解决的办法。如果不用window.open出来的弹出窗口改用form表单对象的submit方式指定target="_blank"是可以传递很长的内容的
      

  2.   

    win.document.all("Lcontent").innerHTML = content;这个写在打开的窗口来看看,用子窗口找父窗口的对象,而不是由父窗口主动的送给子窗口。
    var content = opener.document.getElementById("txtContent").value;
    document.all("Lcontent").innerHTML = opener.document.content;不晓得可以不可以
      

  3.   

    谢谢楼上各位的解答 一开始也考虑过是否内容过长导致为内容尚未完全载入就winopen而出错可是试了  有时FTB里就几个字符  预览时一样出现那中情况反而 我把整个新浪首页的内容粘贴进去预览也正常    如果是上述原因,按道理内容少的的出错几率应该要小些的  可是完全找不到规律  有时试很多次没问题有时一次都不成还有: 028city(耶稣爱我) ,kevin_gao(困了!累了!睡觉了!)  提到的子窗口取值,由于这页面还做了浏览新闻(不是预览)的用途 所以 onload事件没办法用了 applebomb(袋装苹果)  提到的方法,昨天看了动网的预览原码就是这么做的   等下试试
      

  4.   

    问题解决:就是把窗口弹出 和  取值分两步走就OK1:点预览弹出窗口2: 预览页面的 body_onload()  
       {  var e = opener.document.getElementById("txtContent");
              if(e)
               {
                 document.getElementById("Lcontent").innerHTML = e.value;
                }
       }结 贴