刚才结贴了,又发现新问题~~
父页面2.aspx传递变量给iframe里的3.aspx:
<div id="Layer1" style="width:100%;height:100px;position:absolute;background-color: #FF00FF;visibility: hidden;">DIV返回:<div id="aa" name="aa">此处显示  id "aa" 的内容</div></div>
<iframe src="3.aspx" name="i2" scrolling="auto"></iframe>
<form action="3.aspx" method="post" name="form1" target="i2" id="form1">
  <textarea name="te" cols="" rows="">36</textarea>
  <input type="submit" name="Submit" value="提交" />
</form>
<div id="aa" name="aa">此处显示  id "aa" 的内容</div>子页面3.aspx接收,再把变量返回父页面:<%="结果:"+Request.Form["te"]%>
<script>
parent.document.getElementById("aa").innerHTML= "返回:<%=Request.Form["te"]%>"
</script>问题1:输入123这样的字符没问题,但是只要一有换行,父页面就接收不到了。比如:
1
23
问题2:怎样让父页面的id="Layer1"由隐藏变为显示,并正确显示子页面传回来的(有换行的)值?

解决方案 »

  1.   

    parent.document.getElementById("aa").innerHTML= "返回:<%=Request.Form["te"].Replace("\r\n","<br/>").Replace("\"","\\"")%>"
      

  2.   

    parent.document.getElementById("Layer1").style.display="none"//隐藏
    parent.document.getElementById("Layer1").style.display=""//显示
      

  3.   

    出错了:
    Compiler Error Message: CS1010: Newline in constant
    Line 11: parent.document.getElementById("aa").innerHTML= "返回:<%=Request.Form["te"].Replace("\r\n","<br/>").Replace("\"","\\"")%>"
      

  4.   

    parent.document.getElementById("aa").innerHTML= '返回:<%=Request.Form["te"].Replace("\r\n","<br/>").Replace("'","\\'")%>'
      

  5.   

    谢谢孟老师!不过还是有问题:
    Object reference not set to an instance of an object. 
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.Source Error: 
    Line 9:  <%="结果:"+Request.Form["te"]%>
    Line 10: <script>
    Line 11: parent.document.getElementById("aa").innerHTML= '返回:<%=Request.Form["te"].Replace("\r\n","<br/>").Replace("'","\\'")%>'
    Line 12: </script>
    Line 13: </body>
     Source File: g:\work\c\3.aspx    Line: 11 Stack Trace: 
    [NullReferenceException: Object reference not set to an instance of an object.]
       ASP._3_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) in g:\work\c\3.aspx:11
       System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +2065835
       System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
       System.Web.UI.Page.Render(HtmlTextWriter writer) +26
       System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
       System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
       System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
       System.Web.UI.Page.ProcessRequestMain
     
      

  6.   

    貌似要加个条件,可我加的不对:
    <%string re=Request.Form["te"];%>
    <%="结果:"+re%>
    <script>
    if (re != null)
    {
    parent.document.getElementById("aa").innerHTML= '返回:<%=re.Replace("\r\n","<br/>").Replace("'","\\'")%>'
    parent.document.getElementById("Layer1").style.visibility=""//显示
    }
    </script>
      

  7.   

    本帖最后由 net_lover 于 2012-10-13 07:51:46 编辑