实现页面局部动态加载
有主页面,在主页面中不使用<iframe来动太加载子页面.htm的方法,
在主页面中
<script language=javascript>
var oDiv
var xh
function getPageDataFromUrl(url,div)
{
oDiv = div
oDiv.innerHTML = "正在加载数据,请稍侯......."
xh = new ActiveXObject("Microsoft.XMLHTTP")
xh.onreadystatechange = getReady
xh.open("GET",url,true)
xh.send();
}
function getReady()
{
if(xh.readyState==4)
{
if(xh.status==200)
{
oDiv.innerHTML = xh.responseText;
}
else
{
oDiv.innerHTML = "由于:" + xh.statusText+"数据加载失败";
}
}
}
</script>
<a href="#" onclick=getPageDataFromUrl("hpage.htm",divBookLoad)>首页</a>
<a href="#" onclick=getPageDataFromUrl("hpage2.htm",divBookLoad)>网页设计比赛</A>
<a href="#" onclick=getPageDataFromUrl("hpage3.htm",divBookLoad)>设计比赛报名 </A>
<a href="#" onclick=getPageDataFromUrl("hpage4.htm",divBookLoad)>比赛作品提交</A>
<a href="#" onclick=getPageDataFromUrl("hpage5.htm",divBookLoad)> 比赛疑问留言</A>
<a href="#" onclick=getPageDataFromUrl("hpage6.htm",divBookLoad)> 其它</A>
<div id="divBookLoad" ></div>
以上为自己修改后的代码,
以下为别人的,
iframe或者xmlhttp
比如
<script language="javascript">
var oDiv
var xh
function getPageDataFromUrl(url,div)
{
var d;
d = new Date();
oDiv = div
oDiv.innerHTML = "正在加载数据,请稍侯......."
xh = new ActiveXObject("Microsoft.XMLHTTP")
xh.onreadystatechange = getReady
xh.open("GET",url+"&rnd="+d.getTime(),true)
xh.send();
}
function getReady()
{
if(xh.readyState==4)
{
if(xh.status==200)
{
oDiv.innerHTML = xh.responseText;
}
else
{
oDiv.innerHTML = "由于:" + xh.statusText+"数据加载失败";
}
}
}
function getLoadData()
{
vTH=document.Form1.tbTH.value;
vGCH=document.Form1.tbGCH.value;
vYYS=document.Form1.ddlYYS.value;
if(document.Form1.tbTH!=undefined)
{
var d;
d = new Date();
getPageDataFromUrl("../ScriptLoad/BookList.aspx?rnd="+d.getTime()+"&TH="+vTH+"&GCH="+vGCH+"&YYS="+vYYS,document.all.divBookLoad)
}
}
function getRowData()
{
document.Form1.ddlYYS.value=event.srcRow.cells[6].innerText;
document.Form1.tbTH.value=event.srcRow.cells[1].innerText;
document.Form1.tbGCH.value=event.srcRow.cells[2].innerText;
}
</script>
----------------
<div id="divBookLoad" style="OVERFLOW: auto; WIDTH: 100%; HEIGHT: 150px"></div>
---------------
ajax大概就是这个道理
我得思路是这样的,在主页面上编写一段javascript的小函数,执行的功能是利用xmlhttp对象根据所给的参数获得另一个页面中的数据页面,然后动态的显示在主页面中。看上去好像是没有什么问题,但是在用户交互上就不是那么好控制,因为在主页面上显示的是纯的html的代码,但是子页面上的交互功能却不好实现了。于是我就想到了在子页面上来调用主页面的javascript代码,同时给他相应的参数。这样,既实现了动态局部刷新,又保证了子页面的用户交互性。
主要代码如下 :
在主页面中用这段javascript 代码获取子页面的代码
<script language=javascript>
var oDiv
var xh
function getPageDataFromUrl(url,div)
{
oDiv = div
oDiv.innerHTML = "正在加载数据,请稍侯......."
xh = new ActiveXObject("Microsoft.XMLHTTP")
xh.onreadystatechange = getReady
xh.open("POST",url,"false");
xh.send();
}
function getReady()
{
if(xh.readyState==4)
{
if(xh.status==200)
{
strTest = xh.responseText ;
re = /form/;
strTest=strTest.replace(re,"ggggg");
oDiv.innerHTML = strTest;
}
else
{
oDiv.innerHTML = "由于:" + xh.statusText+"数据加载失败";
}
}
}
</script>
<body onload='getPageDataFromUrl("PostClubIndexList.aspx",document.all.ListBox);>
然后,在自页面中用
<A class="a_hei00" href="#" onclick="parent.getPageDataFromUrl('<%#System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=1"%>',document.all.ListBox)">首页</A></TD>
的代码来回调主页面中的javascript函数,重新传给url连接 这样就实现了页面的客户端翻页的效果。
浙公网安备 33010602011771号