木子坊告诉你ZBLOG较长的文章如何实现分页
当前位置:首页 - 代码技巧 - 木子坊告诉你ZBLOG较长的文章如何实现分页

zblog里面没有文章自动分页的功能,让很多Zblog爱好者头疼,难免会有一些比较长的文章。现如今我在网上找到了实现ZBLOG文章分页的方法,只是最后实现起来,感觉编辑的时候速度就慢得让人蛋疼,想来最终的效果也不会理想。但不管是好是坏,先把方法贴出来,是否用自己决定。

下面说下实现ZBLOG文章分页的具体步聚:

一、用DW等网页编辑软件打开主题样式文件夹下模板文件夹里的b_article-single.html.在里面查找下面这行代码:<#article/content#>,即文章内容的调用符,将此代码修改为如下代码:

<DIV id="article"></DIV>
<xml id="xmlArticle">
<Article>
<Info>
<Content>
<![CDATA[<#article/content#>]]>
</Content>
</Info>
</Article>
</xml>
<script language="JavaScript" src="<#ZC_BLOG_HOST#>script/Autopage.js" type="text/javascript"></script>

注意:后面的JS调用一定要有,不然网页打开后会报错的,或者无法显示内容。

二、将下面的代码复制保存为Autopage.js文件,上传至网站空间根目录的SCRIPT文件夹里。(其它文件夹也可以,但上面的调用路径也要相应的做出调整)

特别注意:这个JS代码的编码模式应该是UTF8才行,不然会出现乱码。

//每页显示字数

PageSize=5000;
//分页模式
flag=2;//1:根据字数自动分页 2:根据分页(去掉=号)
//默认页
startpage = 1;
//导航显示样式 0:常规 1:直接 3:下拉(屏蔽了,不需改动)
TopShowStyle = 1;
DownShowStyle = 0;
var currentSet,CutFlag,TotalByte,PageCount,key,tempText,tempPage;
key="";
currentSet=0;
var Text=xmlArticle.selectSingleNode("//Content").text;
TotalByte=Text.length;
if (flag==1)
{
PageCount=Math.round(TotalByte/PageSize);
if(parseFloat("0."+TotalByte%PageSize)>0){
if(parseFloat("0."+TotalByte%PageSize)<0.5){
PageCount=PageCount+1;
}
}
var PageNum=new Array(PageCount+1);
var PageTitle=new Array(PageCount+1);
PageNum=0;
PageTitle="";

var sDrv1,sDrv2,sDrv3,sDrv4,sFlag;
var sDrvL,sTemL;
var sTem1,sTem2,k;
sFlag=0;

for(j=1;j<PageCount+1;j++){
PageNum=PageNum+PageSize;
PageTitle="";
//alert(j);
sDrv1="<br>";
sDrv2="<BR>";
sDrv3="<Br>";
sDrv4="<bR>";
sDrvL=sDrv1.length;
for(k=PageNum;k<=TotalByte;k++){
sTem1=Text.substring(PageNum-sDrvL,k);
sTemL=sTem1.length;
sTem2=sTem1.substring(sTemL-sDrvL,sTemL)
if (sTem2==sDrv1 || sTem2==sDrv2 || sTem2==sDrv3 || sTem2==sDrv4)
{
sFlag=sFlag+1;
PageNum=k;
break;
}
}
if (PageNum>TotalByte)
{
break;
}
}
if (j<PageCount)
{
PageNum.length=j;
PageCount=j
}
if (PageCount>1&&sFlag>1&&PageCount<sFlag)
{
PageCount=sFlag+1;
}
}
else{
//手动分页
var j,sFlag,PageCount,sText;
var sTitleFlag;
var PageNum=new Array();
var PageTitle=new Array();
PageSize=0;
j=1;
PageNum=-10;
PageTitle="";
sFlag=0;
sText=Text;
do
{
sText=Text.substring(PageNum+10,TotalByte);
sFlag=sText.indexOf("[Next=Page");//这里的=号在写JS时也要去掉,我这里加上是为了避免自动分页
if (sText.substring(sFlag+9,sFlag+10)=="=")
{
sTitleFlag=sText.indexOf("]",sFlag);
PageTitle=sText.substring(sFlag+10,sTitleFlag);
}
else{
PageTitle="";
}
if (sFlag>0)
{
PageNum=sFlag+PageNum+10;
}
else{
PageNum=TotalByte;
}
j+=1;
}
while (PageNum<TotalByte);
PageCount=j-1;
}
function text_pagination(Page){
var Output,Byte;
if(Page==null){Page=1;}
Output="";

//显示正文
if(Page==0) {
//不分页
tempText=Text;
}
else{
//分页
if (flag==1)
//自动分页
{
tempText=Text.substring(PageNum,PageNum);
}
else{
//手动分页
if (PageTitle.length==0)
{
tempText=Text.substring(PageNum+10,PageNum);
}
else{
tempText=Text.substring(PageNum+11+PageTitle.length,PageNum);
}
}
}

//布置内容

Output=Output+"<div id=world>";
Output=Output+tempText;
Output=Output+"</div>";
Output=Output+"<br>";
Output=Output+"<div align=center>";
Output=Output+Article_PageNav(DownShowStyle,Page);
Output=Output+"</div>";

article.innerHTML = Output;
if (Page>1)
{
document.location.href='#top';
}
}
function Article_PageNav(ShowStyle,Page){
//分页码显示函数
//参数为调用样式,0=简单样式,1=标准样式



本文 暂无 评论

Top

分享: