超长文章(HTML格式)自动分页,用ASP和JS实现

来源:互联网 发布:linux 查看密码 编辑:程序博客网 时间:2024/04/30 14:09


原文出处: http://blog.mvpcn.net/jaron/archive/2004/07/15/2159.aspx

这两天看到有朋友提出文章自动分页的问题,贴出我原来系统中的一部分代码,供大家参照,看是否有需要改进的地方或有更好的建议,其实偶们公司最近的项目都是用c#,ASP已经很少用了...
这里只贴出了一部分代码,有兴趣的朋友,可以在
http://demo.jaron.cn 测试,管理端 http://demo.jaron.cn/admintools 帐号和密码都是 demo

生成后的页面的演示:
---------------
http://demo.jaron.cn/SiteManager/59/2004-05/20040517001558-101502.html
http://demo.jaron.cn/SiteManager/59/2004-05/20040517001558-101502_2.html
http://demo.jaron.cn/SiteManager/59/2004-05/20040517001558-101502_3.html
http://demo.jaron.cn/SiteManager/59/2004-05/20040517001558-101502_4.html

JavaScript脚本部分
======================
以下是代码片段:
function submitPostIfRame(mode){
 var sMarkup = doc_html.getHTML();  //从html编辑器中取数据
 with(document.forms[0]){
  doc_html.document.open();
  doc_html.document.write(sMarkup);
  doc_html.document.close();
  doc_html.document.body.innerHTML = sMarkup;
  var oBody=doc_html.document.body;
  var oHTML="";
  for(var i=0;i   if(i!=oBody.childNodes.length-1){
    if(oBody.childNodes[i].nodeType==3){
     oHTML+=oBody.childNodes[i].nodeValue+"";
    }else{
     oHTML+=oBody.childNodes[i].outerHTML+"";
    }
   }else{
    if(oBody.childNodes[i].nodeType==3){
     oHTML+=oBody.childNodes[i].nodeValue;
    }else{
     oHTML+=oBody.childNodes[i].outerHTML;
    }
   }
  }
  news_content.value = oHTML
 }
 return true;
}


ASP脚本部分
===============
以下是代码片段:
Function calculate_pagination(strContent, pSize)
    On Error Resume Next
    Dim aCon, intfor, intCount, strTemp, strTemp2
    aCon = Split(strContent, "", -1, 1)
    intCount = UBound(aCon)
    strTemp = ""
    strTemp2 = ""
    Page = 1
    For intfor = 0 To intCount
        strTemp = strTemp & aCon(intfor)
        strTemp2 = strTemp2 & RemoveHTML(aCon(intfor))
        'strTemp2 = strTemp2 & aCon(intFor)
        If Len(strTemp2) >= pSize Then
            Page = Page + 1
            strTemp = ""
            strTemp2 = ""
        End If
    Next
    'If strTemp2 <> "" Then Page = Page - 1
    calculate_pagination = Page
    If Err.Number <> 0 Then
        calculate_pagination = 1
        Err.Clear
    End If
End Function
Function get_page_text(strContent, pagenum, totalpage, pSize)
    aCon = Split(strContent, "", -1, 1)
    intCount = UBound(aCon)
    strTemp = ""
    strTemp2 = ""
    Page = 1
    For intfor = 0 To intCount
        strTemp = strTemp & aCon(intfor)
        strTemp2 = strTemp2 & RemoveHTML(aCon(intfor))
        'strTemp2 = strTemp2 & aCon(intFor)
        If Len(strTemp2) >= pSize Then
            If pagenum = Page Then
                get_page_text = strTemp
                Exit For
            End If
            Page = Page + 1
            strTemp = ""
            strTemp2 = ""
        End If
    Next
    If strTemp2 <> "" And pagenum > Page - 1 Then get_page_text = strTemp
End Function

原创粉丝点击