读书人

初学者送分:还是父页面变量传递有关问

发布时间: 2012-10-17 10:25:47 作者: rapoo

菜鸟送分:还是父页面变量传递问题!
刚才结贴了,又发现新问题~~
父页面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>



读书人网 >asp.net

热点推荐