[JS源码]超长文章自动分页(客户端版)

  

复制代码 代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

  <HTML>

  <HEAD>

  <TITLE> New Document </TITLE>

  <META NAME="Generator" CONTENT="EditPlus">

  <META NAME="Author" CONTENT="">

  <META NAME="Keywords" CONTENT="">

  <META NAME="Description" CONTENT="">

  <style>

  * {

  font-size:10.2pt;

  font-family:tahoma;

  line-height:150%;

  }

  .divContent

  {

  border:1px solid red;

  background-color:#FFD2D3;

  width:500px;

  word-break:break-all;

  margin:10px 0px 10px;

  padding:10px;

  }

  </style>

  </HEAD>

  <BODY>

  header

  <div id="divPagenation"></div>

  <div id="divContent"></div>

  footer

  <SCRIPT LANGUAGE="JavaScript">

  <!--

  s="<p>女老师竭力向孩子们证明,学习好功课的重要性。 </p><p>她说:“牛顿坐在树下,眼睛盯着树在思考,这时,有一个苹果落在他的头上,于是他发现了万有引力定律,孩子们,你们想想看,做一位伟大的科学家多么好,多么神气啊,要想做到这一点,就必须好好学习。” </p><p>“班上一个调皮鬼对此并不满意。他说:“兴许是这样,可是,假如他坐在学校里,埋头书本,那他就什么也发现不了啦。” </p><p>女老师竭力向孩子们证明,学习好功课的重要性。 </p><p>她说:“牛顿坐在树下,眼睛盯着树在思考,这时,有一个苹果落在他的头上,于是他发现了万有引力定律,孩子们,你们想想看,做一位伟大的科学家多么好,多么神气啊,要想做到这一点,就必须好好学习。” </p><p>“班上一个调皮鬼对此并不满意。他说:“兴许是这样,可是,假如他坐在学校里,埋头书本,那他就什么也发现不了啦。” </p><p>女老师竭力向孩子们证明,学习好功课的重要性。 </p><p>她说:“牛顿坐在树下,眼睛盯着树在思考,这时,有一个苹果落在他的头上,于是他发现了万有引力定律,孩子们,你们想想看,做一位伟大的科学家多么好,多么神气啊,要想做到这一点,就必须好好学习。” </p><p>“班上一个调皮鬼对此并不满意。他说:“兴许是这样,可是,假如他坐在学校里,埋头书本,那他就什么也发现不了啦。” </p><p>女老师竭力向孩子们证明,学习好功课的重要性。 </p><p>她说:“牛顿坐在树下,眼睛盯着树在思考,这时,有一个苹果落在他的头上,于是他发现了万有引力定律,孩子们,你们想想看,做一位伟大的科学家多么好,多么神气啊,要想做到这一点,就必须好好学习。” </p><p>“班上一个调皮鬼对此并不满意。他说:“兴许是这样,可是,假如他坐在学校里,埋头书本,那他就什么也发现不了啦。” </p><p>女老师竭力向孩子们证明,学习好功课的重要性。 </p><p>她说:“牛顿坐在树下,眼睛盯着树在思考,这时,有一个苹果落在他的头上,于是他发现了万有引力定律,孩子们,你们想想看,做一位伟大的科学家多么好,多么神气啊,要想做到这一点,就必须好好学习。” </p><p>“班上一个调皮鬼对此并不满意。他说:“兴许是这样,可是,假如他坐在学校里,埋头书本,那他就什么也发现不了啦。” </p>";

  // 封装DHTMLpagenation

  function DHTMLpagenation(content) { with (this)

  {

  // client static html file pagenation

  // Scipit by blueDestiny,never-online, www.never-online.net

  this.content=content; // 内容

  this.contentLength=content.length; // 内容长度

  this.pageSizeCount; // 总页数

  this.perpageLength=100; //default perpage byte length.

  this.currentPage=1; // 起始页为第1页

  //this.regularExp=/.+[\?\&]{1}page=(\d+)/;

  this.regularExp=/\d+/; // 建立正则表达式,匹配数字型字符串。

  this.divDisplayContent;

  this.contentStyle=null;

  this.strDisplayContent="";

  this.divDisplayPagenation;

  this.strDisplayPagenation="";

  // 把第二个参数赋给perpageLength;

  arguments.length==2?perpageLength=arguments[1]:'';

  try {

  divExecuteTime=document.createElement("DIV");

  document.body.appendChild(divExecuteTime);

  }

  catch(e)

  {

  }

  // 得到divPagenation容器。

  if(document.getElementById("divPagenation"))

  {

  divDisplayPagenation=document.getElementById("divPagenation");

  }

  else

  {

  try

  {

  divDisplayPagenation=document.createElement("DIV");

  divDisplayPagenation.id="divPagenation";

  document.body.appendChild(divDisplayPagenation);

  }

  catch(e)

  {

  return false;

  }

  }

  // 得到divContent容器

  if(document.getElementById("divContent"))

  {

  divDisplayContent=document.getElementById("divContent");

  }

  else

  {

  try

  {

  divDisplayContent=document.createElement("DIV");

  divDisplayContent.id="divContent";

  document.body.appendChild(divDisplayContent);

  }

  catch(e)

  {

  return false;

  }

  }

  DHTMLpagenation.initialize();

  return this;

  }};

  //初始化分页;

  //包括把加入CSS,检查是否需要分页

  DHTMLpagenation.initialize=function() { with (this)

  {

  divDisplayContent.className=contentStyle!=null?contentStyle:"divContent";

  if(contentLength<=perpageLength)

  {

  strDisplayContent=content;

  divDisplayContent.innerHTML=strDisplayContent;

  return null;

  }

  pageSizeCount=Math.ceil((contentLength/perpageLength));

  DHTMLpagenation.goto(currentPage);

  DHTMLpagenation.displayContent();

  }};

  //显示分页栏

  DHTMLpagenation.displayPage=function() { with (this)

  {

  strDisplayPagenation="分页:";

  if(currentPage&¤tPage!=1)

  strDisplayPagenation+='<a href="javascript:void(0)" onclick="DHTMLpagenation.previous()">上一页</a>  ';

  else

  strDisplayPagenation+="上一页  ";

  for(var i=1;i<=pageSizeCount;i++)

  {

  if(i!=currentPage)

  strDisplayPagenation+='<a href="javascript:void(0)" onclick="DHTMLpagenation.goto('+i+');">'+i+'</a>  ';

  else

  strDisplayPagenation+=i+"  ";

  }

  if(currentPage&¤tPage!=pageSizeCount)

  strDisplayPagenation+='<a href="javascript:void(0)" onclick="DHTMLpagenation.next()">下一页</a>  ';

  else

  strDisplayPagenation+="下一页  ";

  strDisplayPagenation+="共 " + pageSizeCount + " 页,每页" + perpageLength + " 字符,调整字符数:<input type='text' value='"+perpageLength+"' id='ctlPerpageLength'><input type='button' value='确定' onclick='DHTMLpagenation.change(document.getElementById(\"ctlPerpageLength\").value);'>";

  divDisplayPagenation.innerHTML=strDisplayPagenation;

  }};

  //上一页

  DHTMLpagenation.previous=function() { with(this)

  {

  DHTMLpagenation.goto(currentPage-1);

  }};

  //下一页

  DHTMLpagenation.next=function() { with(this)

  {

  DHTMLpagenation.goto(currentPage+1);

  }};

  //跳转至某一页

  DHTMLpagenation.goto=function(iCurrentPage) { with (this)

  {

  startime=new Date();

  if(regularExp.test(iCurrentPage))

  {

  currentPage=iCurrentPage;

  strDisplayContent=content.substr((currentPage-1)*perpageLength,perpageLength);

  }

  else

  {

  alert("page parameter error!");

  }

  DHTMLpagenation.displayPage();

  DHTMLpagenation.displayContent();

  }};

  //显示当前页内容

  DHTMLpagenation.displayContent=function() { with (this)

  {

  divDisplayContent.innerHTML=strDisplayContent;

  }};

  //改变每页的字节数

  DHTMLpagenation.change=function(iPerpageLength) { with(this)

  {

  if(regularExp.test(iPerpageLength))

  {

  DHTMLpagenation.perpageLength=iPerpageLength;

  DHTMLpagenation.currentPage=1;

  DHTMLpagenation.initialize();

  }

  else

  {

  alert("请输入数字");

  }

  }};

  // 接口API

  // DHTMLpagenation(strContent[,perpageLength])

  DHTMLpagenation(s,100);

  // Power By blueDestiny,never-online

  //-->

  </SCRIPT>

  </BODY>

  </HTML>