因为网站的需要,想要使用fckeditor对长的新闻进行分页,在网上找了找,解决方法不明确而且又很散,于是自己动手改改
首先修改FCKeditor\editor\js\里面的两个js文件,fckeditorcode_gecko.js,fckeditorcode_ie.js
1.找到<span style="DISPLAY:none"> </span>修改为:$[page]$
2.去掉e.style.pageBreakAfter = 'always';(没有去掉的话,分页的时候内容乱了,我也不知道去掉了对不对)
上面修改的就是fckeditor插入分页符的内容,这样好在分页方法里面替换
下面贴上分页的方法
/// <summary>
///文章分页函数
/// </summary>
/// <param name="content">文章内容</param>
/// <param name="currentPage">当前页码</param>
/// <param name="pageUrl">当前页面地址</param>
protected void ArticlePage(string content, int currentPage, string pageUrl)
{
int pageCount = 0;//页数
content = content.Replace("<div>$[page]$/div>", "[--page--]");
string[] tempContent = System.Text.RegularExpressions.Regex.Split(content, "\\u005B--page--]"); //取得分页符 "\\u005B"为"["的转义
pageCount = tempContent.Length;
string outputContent = "";//要输出的内容
if (pageCount <= 1)
{
outputContent = content; //文章内容
this.pnlPage.Visible = false;
}
else
{
string pageStr = "";//分页字符串
pageStr += "共 <span style='font-weight:bold'>" + pageCount + "</span> 页 ";
if (currentPage != 1)
{
pageStr += " <a class='prev' href =" + pageUrl + "&page=" + (currentPage - 1) + ">上一页</a> ";
}
for (int i = 1; i <= pageCount; i++)
{
if (i == currentPage)
pageStr += ("<span class='active'> " + i + " </span>");
else
pageStr += ("<a class='num' href =" + pageUrl + "&page=" + i + "> [" + i + "] </a>");
}
if (currentPage != pageCount)
{
pageStr += " <a class='next' href =" + pageUrl + "&page=" + (currentPage + 1) + ">下一页</a> ";
}
this.lbl_page.Text = pageStr;//分页的页码
outputContent = tempContent[currentPage - 1].ToString();
}
this.Literal1.Text = outputContent;//显示文章的内容
}
//此分页方法是网络上查找整理的
这种fckeditor分页的方式有点死板,不知道各位大虾有木有更好的方法,指教!!!