最基础的长文章分页虽然很简单,但一直没有去实践,最近没什么事情便捣鼓了一把
其实也没有说亲自去写每一行代码,网上搜索了一把,看中一哥们的一篇文章,便拿过来改吧改吧,因为是事后很久才写这个笔记,所以记不住那个文章的链接了,在此也正式的说声:抱歉,兄弟!
长文章分页常见的有两种方式,一种是通过js,另一种是结合后台程序,根据长度做截取,但因为html标签在截取的时候容易出现标签没有闭合的情况,而要解决这个问题就需要用正则去匹配,比较麻烦,个人比较喜欢第一种,方便实用 而且可控性、灵活性比较高,当然缺陷就是小编估计不干了,每篇文章都得手动的去插入分隔符;
长文章分页的关键点:分页符 比如ueditor的 _ueditor_page_break_tag_
两个js函数 split 和 test
下面上代码
- <span style="font-size:14px;"><script type="text/javascript">
- var pageCount = 1;//总页数
- var regExp = /_ueditor_page_break_tag_/;//根据某处字符来分页
- var saveContent;//用于保存分页数据
- var content, pageList;//保存全局ID
- $(document).ready(function(){
- UeInitialize("#content-box","#page");
- });
- UeInitialize = function (id,page) {
- var cTxt = $(id).html();
- content = $(id);
- pageList = $(page);
- if (cTxt != null && regExp.test(cTxt)) {
- saveContent = cTxt.split(regExp);
- pageCount = saveContent.length;
- }
- window.UePageContent(1);
- };
- UePageContent = function (pageIndex) {
- if (pageIndex >= 1 && pageIndex <= pageCount && saveContent != null && saveContent.length >= 0) {
- var pageHtml = pageList;
- if ((parseInt(pageIndex) - 1) <= saveContent.length) {
- content.html(saveContent[parseInt(pageIndex) - 1]);
- }
- pageHtml.html("");
- var innHtml = "页数:" + pageIndex + "/" + pageCount;
- innHtml += "<a target='_self' href='javascript:UePageContent(1)'>首页</a>";
- if (pageIndex > 1) {
- innHtml += "<a target='_self' href='javascript:UePageContent(" + (parseInt(pageIndex) - 1) + ")'>上一页</a>";
- }
- if (pageIndex < pageCount) {
- innHtml += "<a target='_self' href='javascript:UePageContent(" + (parseInt(pageIndex) + 1) + ")'>下一页</a>";
- }
- innHtml += "<a target='_self' href='javascript:UePageContent(" + pageCount + ")'>末页</a>";
- pageHtml.html(innHtml);
- }
- }
- </script></span>
内容和分页容器
- <span style="font-size:14px;"><div id="content-box">
- {$ainfo.content} //长文章内容
- </div>
- <div id="page"></div></span>
如此这般便可以实现一个简单的长文章分页了,当然分页条部分你可以根据自己的需求去修改 比如根据分页数去做一个循环,显示成1 2 3 4 这种形式的