日期:2014-05-17  浏览次数:20454 次

菜鸟送分:还是父页面变量传递问题!
刚才结贴了,又发现新问题~~
父页面2.aspx传递变量给iframe里的3.aspx:
HTML code
<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接收,再把变量返回父页面:
HTML code

<%="结果:"+Request.Form["te"]%>
<script>
parent.document.getElementById("aa").innerHTML= "返回:<%=Request.Form["te"]%>"
</script>


问题1:输入123这样的字符没问题,但是只要一有换行,父页面就接收不到了。比如:
1
23
问题2:怎样让父页面的id="Layer1"由隐藏变为显示,并正确显示子页面传回来的(有换行的)值?

------解决方案--------------------
parent.document.getElementById("aa").innerHTML= "返回:<%=Request.Form["te"].Replace("\r\n","<br/>").Replace("\"","\\"")%>"
------解决方案--------------------
parent.document.getElementById("Layer1").style.display="none"//隐藏
parent.document.getElementById("Layer1").style.display=""//显示
------解决方案--------------------
parent.document.getElementById("aa").innerHTML= '返回:<%=Request.Form["te"].Replace("\r\n","<br/>").Replace("'","\\'")%>'
------解决方案--------------------
if (re != null)不是js变量,不能那样使用的


要判断,你可以这样


<%string re=Request.Form["te"];%>
<%="结果:"+re%>
<script>
<% if (!String.IsNullOrEmpty(re))
{%>
parent.document.getElementById("aa").innerHTML= '返回:<%=re.Replace("\r\n","<br/>").Replace("'","\\'")%>'
<%}%>
parent.document.getElementById("Layer1").style.visibility=""//显示
</script>