现在的位置: 首页 > 综合 > 正文

纯js写的xml数据分页显示程序

2013年09月19日 ⁄ 综合 ⁄ 共 4429字 ⁄ 字号 评论关闭

 

//===============================================================================
// http://www.e-works.net.cn
// 中国信息制造业信息技术有限公司
//===============================================================================
// Copyright (C) 2002-2012 E-WORKS
// All rights reserved.
//
//==============================================================================
 

// 错误信息常量
var MSG_INVALID_XMLFILE = "您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!";

 

function importXML(file)
{
    try //Internet Explorer
   {
     xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
   }
   catch(e)
   {
      try //Firefox, Mozilla, Opera, etc.
   {
    xmlDoc=document.implementation.createDocument("","",null);
   }
      catch(e)
   {
    alert(e.message);
       return;
   }
   }
   xmlDoc.async=false;
   xmlDoc.load(file);
   return xmlDoc;
}

// 读取服务器上的xml文件
function loadXML(xmlFile)

 var xmlDoc;
 if (window.ActiveXObject)
 {
  xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
  xmlDoc.async = false;
  xmlDoc.load(xmlFile);
 }
 else if (document.implementation && document.implementation.createDocument)
 {
  xmlDoc = document.implementation.createDocument('', 'doc', null);
  xmlDoc.load(xmlFile);
 }
 else
 {
  return null;
 }   
 return xmlDoc;
}

// 检测 生成xml文档
function checkXMLDocObj(xmlFile)

 // var xmlDoc = loadXML(xmlFile);  
 var xmlDoc = importXML(xmlFile);   
 if(xmlDoc == null)
 {
  alert(MSG_INVALID_XMLFILE);  
  return false ;
 }
 return xmlDoc;
}
//分页显示函数

function showInfoByPage(pindex,psize)
{
var xmlDoc = checkXMLDocObj('/xml/data.xml') ;//获取xml数据
var root=xmlDoc.documentElement;
var num=0;
if(checllq())//检查是否为firefox,因为firefox得到数据行数是真实的两倍
num=((root.childNodes.length-1)/2);

else
 num=root.childNodes.length;//数据行数
var pageSize=psize;
var str='';
if((num-1)/pageSize>parseInt((num-1)/pageSize))
{
totalPage=parseInt((num-1)/pageSize)+1;
}

else
{
 totalPage=parseInt((num-1)/pageSize);
}

var currentPage=pindex;//当前页数
var startRow=(currentPage-1)*pageSize+1;//开始显示的行数
var endRow=currentPage*pageSize+1;//结束的行数
 endRow=(endRow>num)?num:endRow;
 for(var i=0;i<num;i++)
 {
 if(i>=startRow&&i<endRow)
 {
 var node=root.childNodes[i];
  if(node.nodeType==1){
 var sitename=node.getAttribute('linkname');
 var linkurl=node.getAttribute('linkurl');
 var linklogo=node.getAttribute('linklogo');
 var introduce=node.getAttribute('introduce');
 if(linklogo!="")
 { 
 str+="<li> ";
 str+=" <div class=\"name\"><a href=\""+linkurl+"\" title=\""+sitename+"\" target=\"_blank\">"+sitename+"</a></div>";
 str+=" <div class=\"pic\"><IMG height=\"31\" border=\"0\" src=\""+linklogo+"\"></div>";
 str+=" <div class=\"int\">"+introduce+"</div></li>"; 
 }
   else if(linklogo=="")
   {
   str+="<li> ";
  str+=" <div class=\"name\"><a href=\""+linkurl+"\" title=\""+sitename+"\" target=\"_blank\">"+sitename+"</a></div>";
 str+=" <div class=\"pic\"></div>";
 str+=" <div class=\"int\">"+introduce+"</div></li>";
 }
 }
 }

 

}
 var pageStr="";
if(currentPage>=1)
{
pageStr+="<ul>";
if(currentPage<=1)
{
pageStr+="<li class=\"fy1\"><span class=\"style1\"><< 首页</span></li>";
pageStr+="<li class=\"fy3\"><span class=\"style1\">上一页</span></li>";
}
else
{
pageStr+="<li class=\"fy1\"><a onmouseover=\"this.style.cursor='pointer'\" onclick=\"showInfoByPage(1,"+psize+")\"><< 首页</a></li>";
pageStr+="<li class=\"fy3\"><a  onmouseover=\"this.style.cursor='pointer'\" onclick=\"showInfoByPage("+(currentPage-1)+","+psize+")\">上一页</a></li>";
}
for(var i=1;i<=totalPage;i++)
{
if(i==currentPage)
{
 pageStr+="<li class=\"fy5\"><span class=\"style1\">"+i+"</span></li>";
}
else
{
pageStr+="<li class=\"fy5\"><a  onmouseover=\"this.style.cursor='pointer'\" onclick=\"showInfoByPage("+(i)+","+psize+")\">"+i+"</a>";
}
}
if(currentPage>=totalPage)
{
pageStr+="<li class=\"fy3\"><span class=\"style1\">下一页</span></li>";
pageStr+="<li class=\"fy1\"><span class=\"style1\">末页 >></span></li>";
}
else
{
pageStr+="<li class=\"fy3\"><a  onmouseover=\"this.style.cursor='pointer'\" onclick=\"showInfoByPage("+(currentPage+1)+","+psize+")\">下一页</a></li>";
pageStr+="<li class=\"fy1\"><a onmouseover=\"this.style.cursor='pointer'\" onclick=\"showInfoByPage("+totalPage+","+psize+")\">末页 >></a></li>";
}

pageStr+="<li class=\"fy4\">共有<span class=\"style1\">"+num+"</span>条记录,每页<span class=\"style1\">"+pageSize+"</span>条记录 共有<span class=\"style1\">"+totalPage+"</span>页,当前第<span class=\"style1\">"+currentPage+"</span>页</li>";
pageStr+="</ul>";
   
}
document.getElementById("website").innerHTML=str;
document.getElementById("pageinfo").innerHTML=pageStr;
}
function checllq()
 {
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isFF = userAgent.indexOf("Firefox") > -1 ; //判断是否Firefox

        //以下进行测试  
        if(isFF) 
  {
    return true;
  }
  else
  {
  return false;
  }
       
   }
  

抱歉!评论已关闭.