请问关与iframe的问题
为什么我到JS中写function bntAdd()
{
var o=document.getElementById("Select1");
if(o.value=="23")
{
frames[0].location.href='warrant/skpz.aspx';
}
if(o.value=="24")
{
frames[0].location.href='warrant/fkpz.aspx';
}
if(o.value=="25")
{
frames[0].location.href='warrant/zzpz.aspx';
}
if(o.value=="26")
{
frames[0].location.href='warrant/typz.aspx';
}
}
可以执行
但是我到ASP.NET的事件里面写
if (dt.Rows[0]["statictype_id"].ToString() == "23")
{
Response.Write("<script>frames[0].location.href='warrant/skpz.aspx?formID=" + dt.Rows[0]["Form_ID"].ToString() + "';</script>");
}
else if (dt.Rows[0]["statictype_id"].ToString() == "24")
{
Response.Write("<script>frames[0].location.href='warrant/fkpz.aspx?formID=" + dt.Rows[0]["Form_ID"].ToString() + "';</script>");
}
else if (dt.Rows[0]["statictype_id"].ToString() == "25")
{
Response.Write("<script>frames[0].location.href='warrant/zzpz.aspx?formID=" + dt.Rows[0]["Form_ID"].ToString() + "';</script>");
}
不能执行? --------------------编程问答-------------------- 试试:
Response.Write(" <script language='javascript'>frames[0].src='warrant/skpz.aspx?formID=" + dt.Rows[0]["Form_ID"].ToString() + "'; </script>");
--------------------编程问答-------------------- Response.Write(" <script language='javascript'>frames[0].src='warrant/skpz.aspx?formID=" + dt.Rows[0]["Form_ID"].ToString() + "'; </script>");
应该正确 楼主试下 --------------------编程问答-------------------- 一直显示frames[0]为空或不水对象 --------------------编程问答-------------------- Response.Write 注册的JS是在页面的最上方,你那样在CS中写,应该会出脚本错误
换种注册脚本的方法写
VS2005
ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(),"<script language='javascript'>frames[0].src='warrant/skpz.aspx?formID=" + dt.Rows[0]["Form_ID"].ToString() ");
VS2003
Page.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(),"<script language='javascript'>frames[0].src='warrant/skpz.aspx?formID=" + dt.Rows[0]["Form_ID"].ToString() ");
试一试。 --------------------编程问答-------------------- 汗一下自己,4楼说的对,你用Response.Write后,执行脚本时,frame还没有创建,就会出现找不到对象的js错误
用4楼的方法就可以了。 --------------------编程问答-------------------- 还是显示的frames[0]为空或不是对象
--------------------编程问答-------------------- 恩
4楼的方面已经有了<body>
<form name="form1" method="post" action="selectAllFrom.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTI1NDAzNjc1Ng9kFgICAw9kFgQCAQ8PFgIeB1Zpc2libGVoZGQCAw8PFgIeC05hdmlnYXRlVXJsBSYvTm90ZVdhcnJhbnQvc2VsZWN0QWxsRnJvbS5hc3B4P3BhZ2U9MmRkZL4WgY4KVX4KgneYi0PE2QSax24E" />
</div>
<div>
<table cellpadding="0" cellspacing="0" width="500px">
<tr>
<td align="right" style="width: 72px; height: 19px"></td>
<td style="width: 65px; height: 19px;" align="left"><a id="nextLink" href="/NoteWarrant/selectAllFrom.aspx?page=2">下一页</a></td>
</tr>
</table>
</div>
<input name="buttadd" type="button" id="buttadd" onclick="button()" />
<div>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgKHu/WcAQKbl/bgCw0//WEnZwOxfqxbLtfP8rtSO/tW" />
</div>
<script language='javascript'>frames[0].src='warrant/skpz.aspx?formID=11200861610136';</script></form>
<iframe style="width:600px;height:500px" id="Select1" ></iframe>
</body>
</html>
但是也是在iframe 创建前执行的 --------------------编程问答-------------------- 4楼正解 --------------------编程问答-------------------- 会不会在frames[0]之前得加个document.呀。 --------------------编程问答-------------------- 你把<iframe style="width:600px;height:500px" id="Select1" > </iframe>拿到FORM里面去。
RegisterStartupScript注册的脚本是在FORM里的最后面的。 --------------------编程问答-------------------- 相当感谢啦
做出来了
补充:.NET技术 , ASP.NET