| 让PJBlog无跳转异步提交信息 | |
[ ]2008年2月28日 13:19:59 |
|
| 收藏到: | 字体:大 中 小 |
| 再通读了Z-Blog1.8源代码后,这几天又把优秀的PJBlog2 v2.7 Build 05仔细看了一边,发现z-blog有部分代码(甚至变量名)都与PJBlog惊人的相似!(莫非当年zx在设计z-blog的时候也借鉴了pjblog?呵呵,不说远了!)说实话pj-blog和z-blog各有千秋,前者可以说是国内最早的一批博客系统了,不论在作者的开发经验还是在系统的功能扩展,皮肤样式的丰富程度上都要优于后者,而在部分细节上更是考虑的较为全面,如:友情链接管理、日志列表、日志评分、天气状况记录等等!但PJBlog过于传统,在WEB2.0元素应用中远不及后者,如:静态页面重构、无跳转异步提交等等! 其实PJBlog完全可以在不批量修改核心代码的情况下,融入Z-Blog的绝大部分特性!这两天本人将Z-Blog的部分代码移植到了PJBlog,由于都是采用VBS的ASP程序,有些模块移植甚至不需要修改,直接使用!(由于涉及到版权问题,在此不提供源码,有兴趣的朋友可以与本人交流)下面简介一下,让PJBlog无跳转异步提交评论和留言的方法!(以下非Z-Blog异步提交代码,仅供参考!) 1.修改class/cls_logAction.asp文件:(红色为需要修改的部分) …… <div class="pageContent"><%=MultiPage(comm_Num,blogcommpage,CurPage,Url_Add,"#comm_top","float:right")%></div> <div id="revert"><!--将评论套在一个DIV中--> <% Do Until Pcount = commArrLen + 1 OR Pcount=blogcommpage blog_CommID=commArr(0,Pcount) blog_CommAuthor=commArr(2,Pcount) blog_CommContent=commArr(1,Pcount) %> <div class="comment"> <%IF blog_CommID=0 Then%> <div class="commenttop"><img src="images/icon_trackback.gif" alt="" style="margin:0px 4px -3px 0px"/><strong><%=("<a href="""&commArr(4,Pcount)&""">"&commArr(5,Pcount)&"</a>")%></strong> <span class="commentinfo">[<%=DateToStr(commArr(3,Pcount),"Y-m-d H:I A")%><%if stat_Admin=true then response.write (" | <a href=""trackback.asp?action=deltb&tbID="&commArr(6,Pcount)&"&logID="&LogID&""" onclick=""if (!window.confirm('是否删除该引用?')) {return false}""><img src=""images/del1.gif"" alt=""删除该引用"" border=""0""/></a>") end if%>]</span></div> <div class="commentcontent"> <b>标题:</b> <%=blog_CommAuthor%><br/> <b>链接:</b> <%=("<a href="""&commArr(4,Pcount)&""" target=""_blank"">"&commArr(4,Pcount)&"</a>")%><br/> <b>摘要:</b> <%=checkURL(HTMLDecode(blog_CommContent))%><br/> <br/> </div> <%else%> <div class="commenttop"><a name="comm_<%=blog_CommID%>" href="javascript:addQuote('<%=blog_CommAuthor%>','commcontent_<%=blog_CommID%>')"><img border="0" src="images/<%if memName=blog_CommAuthor then response.write ("icon_quote_author.gif") else response.write ("icon_quote.gif") end if%>" alt="" style="margin:0px 4px -3px 0px"/></a><a href="member.asp?action=view&memName=<%=Server.URLEncode(blog_CommAuthor)%>"><strong><%=blog_CommAuthor%></strong></a> <span class="commentinfo">[<%=DateToStr(commArr(3,Pcount),"Y-m-d H:I A")%> <%if stat_Admin then response.write (" | "&commArr(8,Pcount)) end if%><%if stat_Admin=true or (stat_CommentDel=true and memName=blog_CommAuthor) then response.write (" | <a href=""blogcomm.asp?action=del&commID="&blog_CommID&""" onclick=""if (!window.confirm('是否删除该评论?')) {return false}""><img src=""images/del1.gif"" alt=""删除该评论"" border=""0""/></a>") end if%>]</span></div> <div class="commentcontent" id="commcontent_<%=blog_CommID%>"><%=UBBCode(HtmlEncode(blog_CommContent),commArr(4,Pcount),blog_commUBB,blog_commIMG,commArr(7,Pcount),commArr(9,Pcount))%></div> <%end if%> </div> <% Pcount=Pcount+1 loop %> </div><!--将评论套在一个DIV中--> <div class="pageContent"><%=MultiPage(comm_Num,blogcommpage,CurPage,Url_Add,"#comm_top","float:right")%></div> …… <script type="text/javascript" language="javascript" src="/common/revert.js"></script><!--导入异步提交脚本--> <script type="text/javascript"><!--也可以利用内置的checkCommentPost()备用函数异步提交评论--> function checkCommentPost(){ if (!CheckPost) return false //备用方法 return true } </script> <form name="frm" onsubmit="send('revert',this.form)" style="margin:0px;"><!--form中的action,method属性可以删去--> 2.添加common/revert.js文件: function createdom(div_id,logID,username,Message,date){ var rvt=document.getElementById(div_id); var comment=commenttop=commentcontent=document.createElement("div"); comment.className="comment"; commenttop.className="commenttop"; commentcontent.className="commentcontent"; commentcontent.setAttribute("id","commcontent_"+logID); commenttop.innerHTML="<a name='comm_"+logID+"' href='javascript:addQuote('"+username+"','commcontent_"+logID+"')'><img border='0' src='images/icon_quote.gif' style='margin:0px 4px -3px 0px'/></a><a href='member.asp?action=view&memName="+escape(username)+"'><strong>"+username+"</strong></a> <span class='commentinfo'>"+date+"</span>"; commentcontent.innerHTML=Message; comment.appendChild(commenttop); comment.appendChild(commentcontent); rvt.appendChild(comment); } function send(div_id,steadform){ var xmlhttp=new XMLHttpRequest();//创建异步对象,XMLHttpRequest()构造函数代码省略! var username=steadform.username.value; var password=steadform.password.value; var Message=steadform.Message.value; var validate=steadform.validate.value; var logID=steadform.logID.value; if(""==username||""==Message||""==validate){ alert("请不要提交空白信息!!!"); return; } //document.getElementById("info").innerHTML="正在提交,请稍候!";可以插入加载图片! xmlhttp.open("POST","/blogcomm_ajax.asp",true); xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded'); xmlhttp.onreadystatechange=function(){ if(xmlhttp.readyState==4){ if(xmlhttp.status==200){ if(eval(xmlhttp.responseText)){ createdom(div_id,logID,username,Message,(new Date()).toLocaleString()); //document.getElementById("info").innerHTML=unescape(xmlhttp.responseText); }else{ //document.getElementById("info").innerHTML="网络连接失败!"; } } } } xmlhttp.send("username="+escape(username)+"&password="+escape(password)+"&Message="+escape(Message)+"&validate="+validate+"&logID="+logID); } 3.添加blogcomm_ajax.asp文件: 'include导入数据库连接文件,字符串过滤函数,以及blogcomm.asp文件中的postcomm函数省略 <%=escape(join(postcomm()),"")%>'postcomm()(0)错误信息,postcomm()(1)错误情况,postcomm()(2)错误原因! |
|
| 评论(0)┆阅读(0)┆引用┆栏目:ASP.net(C#)┆Tags:PJBlog,开发 | |
| 文章评论 | |
]2008年2月28日 13:19:59