主要是你后面的这个代码
eval('parent.'  +  '<%  =request.querystring("Pnode")  &  "_0"%>'  )
它的运行结果没有返回一个对象
从ie中看看你运行的结果的代码(就是客户端代码)就应该明白了。

解决方案 »

  1.   

    eval("var  x  =  parent."<%  =request.querystring("Pnode")  &  "_0"%>")  ;
      

  2.   

    eval("var  x  =  parent."<%  =request.querystring("Pnode")  &  "_0"%>")  ;
                         ~~~~~~~~
    去掉这个双引号试试
      

  3.   

    <script>  
          var  x  =  eval('parent.'  +  '<%  =request.querystring("Pnode")  &  "_0"%>'  )  ;  
         x.innerHTML="<%  =shtml  %>";  
    </script>  
    逐步调试
    每个alert一下.可惜我机器无法运行xp
    我觉得你把_0放到<%%>外面可能更好控制一点
      

  4.   

    sorry .
    xp >> asp
      

  5.   

    但是上面这句代码和你原来的效果好像是一样的
    这样不知道行不行
    eval("parent.<%=request.querystring("Pnode")&"_0"%>.innerHTML=<%=shtml%>");
      

  6.   

    不好意思
    我发帖子的间隙,正好xiaoshi(js真痛苦!我要被炒了) 也发了两条
    我的“上面这句”不是指 xiaoshi,特此申明一下:)
      

  7.   

    对,帖出你执行后的HTM代码看看
      

  8.   

    执行后的HTM代码:
    <script language="javascript">
       eval('var  x  = parent.'+'Node_0_0' )   x.innerHTML="<div id='Node_0_1'>&nbsp;&nbsp;<a class='f2' href='#' onClick='ExpandNode(Node_0_1,16)'><IMG SRC='../images/plus.GIF' border='0'></a>\n<a class='f2' href='#'onClick='Show(16,Node_0_1)'>dsf</a></div><div id='Node_0_1_0' style='display: none' loaded='no'>&nbsp;&nbsp;&nbsp;&nbsp;<a class='f3'>正在加载 ...</a></div>"
    </script>
      

  9.   

    最终解决方案<script>
          eval('var x= parent.<%  =Trim(request.querystring("Pnode"))  &  "_0"%>) ;
          x.innerHTML="<%=Replace(Replace(shtml,vbCrLf,"\n"),"""","\""") %>";  
    </script>第二句说明.....
    内层Replace将回车换行转换成\n,否则如果你的shtml中有回车换行符输出成javascript后会报错..
    外层Replace将双引号"转换成\",否则如果shtml中包含双引号输出成javascript亦会报错。。