[JS源碼]超長文章自動分頁(用戶端版)

來源:互聯網
上載者:User
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+/; // 建立Regex,匹配數字型字串。

  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&&currentPage!=1)
    strDisplayPagenation+='<a href="javascript:void(0)" >上一頁</a>  ';
  else
    strDisplayPagenation+="上一頁  ";

  for(var i=1;i<=pageSizeCount;i++)
  {
    if(i!=currentPage)
      strDisplayPagenation+='<a href="javascript:void(0)" >'+i+'</a>  ';
    else
      strDisplayPagenation+=i+"  ";
  }

  if(currentPage&&currentPage!=pageSizeCount)
    strDisplayPagenation+='<a href="javascript:void(0)" >下一頁</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>



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。