通过button更新iframe的内容问题
通过如下javascript
<script language= "javascript ">
function getUrl()
{
var hdncid=document.getElementById( "hdncid ");
cid=hdncid.value;
var hdnmode=document.getElementById( "hdnmode ");
mode=hdnmode.value;
var hdnsid=document.getElementById( "hdnsid ");
sid=hdnsid.value;
var yobj=document.getElementById( "sy ");
y=yobj.value;
var mobj=document.getElementById( "sm ");
var idx=mobj.selectedIndex;
m=mobj.options(idx).value;
var bdobj=document.getElementById( "bsd ");
idx=bdobj.selectedIndex;
bd=bdobj.options(idx).value;
var edobj=document.getElementById( "esd ");
idx=edobj.selectedIndex;
ed=edobj.options(idx).value;
var bsh=document.getElementById( "bsh ");
h1=bsh.value;
var esh=document.getElementById( "esh ");
h2=esh.value;
var frm=document.getElementById( "ifrmfivreport ");
frm.src= "fivreport.aspx?mode= "+mode+ "&id= "+cid+ "&sid= "+sid+ "&d= "+y+ "- "+m+ "- "+bd+ " "+h1+ "> "+ed+ " "+h2;
alert(frm.src);//奇怪的地方
}
button如下:
<input type= "button " id= "refBtn " value= "生成报表 " class= "Button1 " onclick= "getUrl();ifrmfivreport.location.reload(true); ">
上面代码的目的是按按钮时,先取得页面上一些域的值,来构造iframe(这里其ID为ifrmfivreport)的src所指向的页面的QueryString,然后通过iframe.location.reload来显示根据新的条件查询到的页面。
现象:
在上面getUrl函数的最后的alert(frm.src),如果有该句,则按按钮后,iframe内显示的结果就是根据页面上的域的值而查询到的结果,如果没有该句,按按钮后,iframe内始终显示的是页面第一次加载时的结果,而页面域的值没起作用,也就是QueryString还是第一次的字符串。
请弟兄们帮忙看看!
------解决方案--------------------frm.location= "fivreport.aspx?mode= "+mode+ "&id= "+cid+ "&sid= "+sid+ "&d= "+y+ "- "+m+ "- "+bd+ " "+h1+ "> "+ed+ " "+h2;
试试
------解决方案--------------------ifrmfivreport.location.reload(true)这句可以去掉吧
ifrmfivreport.src=xxx就可以重载页面了
alert原因是不是同步的问题?就是ifrmfivreport.src=xxx没执行完就reload了