📄 default.js
字号:
var vcmap;
var pcmap;
var tbamap,tbsmap;
var commentListBox;
var postCommentBox;
var commentTipBox;
var msgTipBox;
var postMsgBox;
var xmlDoc;
var bil;
var currentSortId;
var gbTipBox;
var rh;
var sortFlag;
Event.observe(window,"load",init,0);
function init(){
vcmap=new Mapping();
pcmap=new Mapping();
dlmap=new Mapping();
tbamap=new Mapping();
tbsmap=new Mapping();
commentListBox=document.createElement("div");
Element.addClassName(commentListBox,"commentList commentListBox");
postCommentBox=$se("div");
Element.addClassName(postCommentBox,"commentList postCommentBox");
var dl=$se("dl");
Element.addClassName(dl,"list postComment");
dl.appendChild(document.createElementWithText("dt",MultiLang.s191));
var dd=$se("dd");
dd.appendChild(document.createElementWithText("span",MultiLang.s192));
var input=$se("input");
input.type="text";
input.maxlength=15;
dd.appendChild(input);
dl.appendChild(dd);
dd=$se("dd");
dd.appendChild(document.createElementWithText("span",MultiLang.s193));
var textArea=$se("textarea");
textArea.cols=6;
textArea.rows=6;
dd.appendChild(textArea);
input=$se("input");
input.id="btnPostComment";
input.className="button";
input.type="button";
input.value=MultiLang.s194;
dd.appendChild(input);
dl.appendChild(dd);
postCommentBox.appendChild(dl);
//postCommentBox=(document.getElementsByClassName("postCommentBox"))[0];
commentTipBox=new TipBox("",{elementName:"div",marginLeft:"15px",marginRight:"15px",marginTop:"0",marginBottom:"10px"});
msgTipBox=new TipBox("",{marginTop:"10px",padding:"3px",borderStyle:"solid",borderColor:"#888"});
postMsgBox=$("postMsg");
if(postMsgBox)postMsgBox.insertBefore(msgTipBox.box,postMsgBox.childNodes[1]);
externalLinks();
bil=$("blogItemList");
currentSortId=0;
gbTipBox=new TipBox("",{elementName:"div",marginLeft:"10px",marginRight:"10px",paddingLeft:"3px"});
bil.parentNode.insertBefore(gbTipBox.box,bil);
gbTipBox.setText("");
getMenuEffect();
rh=new RefreshHandler();
rh.check("admin");
rh.check();
}
function getMenuEffect(){
var menu=$("ulMenu");
for(var i=0;i<menu.childNodes.length;i++){
menu.childNodes[i].onmouseover=function(){
Element.addClassName(this,"hover");
}
menu.childNodes[i].onmouseout=function(){
Element.removeClassName(this,"hover");
}
}
}
function toggleDl(dt)
{
var e=dt.parentNode;
if(Element.hasClassName(e,"dlClose")){
Element.removeClassName(e,"dlClose");
Element.addClassName(e,"dlOpen");
}
else{
Element.removeClassName(e,"dlOpen");
Element.addClassName(e,"dlClose");
}
}
function toggleViewComment(topicId,e){try{
hideCommentTipBox();
var bi=e.parentNode.parentNode;
var vcb;
if(!vcmap.exist(topicId)){
var tempNode=commentListBox.cloneNode(true);
bi.parentNode.insertBefore(tempNode,bi.nextSibling);
vcmap.push(topicId,tempNode);
vcb=tempNode;
}
else vcb=vcmap.getValue(topicId);
var viewTb=getViewTb(bi);
if(isTbClose(viewTb)){
if(isTbOpen(getPostTb(bi)))togglePostCommentBox(topicId,e);
if(isTbOpen(getTbaTb(bi)))toggleTrackbackAddress(topicId,e);
if(isTbOpen(getTbsTb(bi)))toggleTrackbacks(topicId,e);
genCommentList(topicId);
}
else{
Element.hide(vcb);
setTbClose(viewTb);
}
}catch(e){
return;
}
}
function toggleTrackbacks(topicId,e){
hideCommentTipBox();
var bi=e.parentNode.parentNode;
var tbsb;
if(!tbsmap.exist(topicId)){
var tempNode=commentListBox.cloneNode(true);
bi.parentNode.insertBefore(tempNode,bi.nextSibling);
tbsmap.push(topicId,tempNode);
tbsb=tempNode;
}
else tbsb=tbsmap.getValue(topicId);
var tbsTb=getTbsTb(bi);
if(isTbClose(tbsTb)){
if(isTbOpen(getPostTb(bi)))togglePostCommentBox(topicId,e);
if(isTbOpen(getTbaTb(bi)))toggleTrackbackAddress(topicId,e);
if(isTbOpen(getViewTb(bi)))toggleViewComment(topicId,e);
genTrackbacks(topicId);
}
else{
Element.hide(tbsb);
setTbClose(tbsTb);
}
}
function togglePostCommentBox(topicId,e){
hideCommentTipBox();
var bi=e.parentNode.parentNode;
var pcb;
if(!pcmap.exist(topicId)){
var tempNode=postCommentBox.cloneNode(true);
bi.parentNode.insertBefore(tempNode,bi.nextSibling);
pcmap.push(topicId,tempNode);
pcb=tempNode;
resetPcb(pcb);
attachPostEvent(topicId,pcb);
}
else pcb=pcmap.getValue(topicId);
var postTb=getPostTb(bi);
if(isTbClose(postTb)){
if(isTbOpen(getViewTb(bi)))toggleViewComment(topicId,e);
if(isTbOpen(getTbaTb(bi)))toggleTrackbackAddress(topicId,e);
if(isTbOpen(getTbsTb(bi)))toggleTrackbacks(topicId,e);
Element.show(pcb);
setTbOpen(postTb);
}
else{
Element.hide(pcb);
setTbClose(postTb);
}
}
function toggleTrackbackAddress(topicId,e){
hideCommentTipBox();
var bi=e.parentNode.parentNode;
var tbab;
if(!tbamap.exist(topicId)){
var tempNode=$se("div");
var path=window.location.host+window.location.pathname;
tempNode.innerHTML="<ul class='trackbackAddress'><li class='text'>"+MultiLang.s149+"Trackback"+MultiLang.s150+"</li><li>http://"
+path.substring(0,path.lastIndexOf('/')+1)+"trackback.aspx?id="+topicId+"</li><li class='text'>"+MultiLang.s151+"</li><li>http://"
+path+"#tid."+topicId+"/</li></ul>";
tempNode.className="trackbackAddress";
bi.parentNode.insertBefore(tempNode,bi.nextSibling);
tbamap.push(topicId,tempNode);
tbab=tempNode;
//resetPcb(pcb);
//attachPostEvent(topicId,pcb);
}
else tbab=tbamap.getValue(topicId);
var tbaTb=getTbaTb(bi);
if(isTbClose(tbaTb)){
if(isTbOpen(getViewTb(bi)))toggleViewComment(topicId,e);
if(isTbOpen(getPostTb(bi)))togglePostCommentBox(topicId,e);
if(isTbOpen(getTbsTb(bi)))toggleTrackbacks(topicId,e);
Element.show(tbab);
setTbOpen(tbaTb);
}
else{
Element.hide(tbab);
setTbClose(tbaTb);
}
}
function showCommentTipBox(msg,e,noButton){
e.parentNode.insertBefore(commentTipBox.box,e.nextSibling);
commentTipBox.show();
if(noButton)commentTipBox.setText(msg,"noCloseButton");
else commentTipBox.setText(msg);
}
function hideCommentTipBox(){
commentTipBox.hide();
}
function isTbOpen(tb){
return tb.nodeValue.charAt(0)==MultiLang.s152;
}
function isTbClose(tb){
return tb.nodeValue.charAt(0)==MultiLang.s153;
}
function setTbClose(tb){
tb.nodeValue=MultiLang.s153+tb.nodeValue.slice(1,tb.nodeValue.length);
}
function setTbOpen(tb){
tb.nodeValue=MultiLang.s152+tb.nodeValue.slice(1,tb.nodeValue.length);
}
function getViewTb(e){
return e.lastChild.childNodes[0].firstChild;
}
function getPostTb(e){
return e.lastChild.childNodes[1].firstChild;
}
function getTbaTb(e){
return e.lastChild.childNodes[2].firstChild;
}
function getTbsTb(e){
return e.lastChild.childNodes[3].firstChild;
}
function genCommentList(topicId){
try{
var vcb=vcmap.getValue(topicId);
var bi=pn(vcb);
showCommentTipBox(MultiLang.s66,bi,"noButton");
var option={
parameters:"s="+Math.random()+"&oper=getComment&topicId="+topicId,
method:"get",
onSuccess:function(transport){
var rp=transport.responseText;
if(/^<(\d+)>/.exec(rp)==null){
commentTipBox.setText(rp);
commentTipBox.hideAfterSeconds(3);
return;
}
bi.lastChild.childNodes[0].childNodes[1].innerHTML=RegExp.$1;
if(RegExp.$1==0){
commentTipBox.setText(MultiLang.s154);
commentTipBox.hideAfterSeconds(3);
return;
}
setTbOpen(getViewTb(bi));
vcb.innerHTML=RegExp.rightContext;
commentTipBox.hide();
Element.show(vcb);
},
onFailure:function(transport){
commentTipBox.setText(MultiLang.s13+"<a href='javascript:genCommentList("+topicId+")'>"+MultiLang.s11+"</a>"+MultiLang.s12);
}
}
var request=new Ajax.Request("ajax.aspx",option);
return;
}catch(e){
return;
}
}
function genTrackbacks(topicId){try{
var tbsb=tbsmap.getValue(topicId);
var bi=pn(tbsb);
showCommentTipBox(MultiLang.s66,bi,"noButton");
var option={
parameters:"s="+Math.random()+"&oper=getTrackbacks&topicId="+topicId,
method:"get",
onSuccess:function(transport){
var rp=transport.responseText;
if(/^<(\d+)>/.exec(rp)==null){
commentTipBox.setText(rp);
commentTipBox.hideAfterSeconds(3);
return;
}
bi.lastChild.childNodes[3].childNodes[1].innerHTML=RegExp.$1;
if(RegExp.$1==0){
commentTipBox.setText(MultiLang.s155+"Trackback"+MultiLang.s156);
commentTipBox.hideAfterSeconds(3);
return;
}
setTbOpen(getTbsTb(bi));
tbsb.innerHTML=RegExp.rightContext;
commentTipBox.hide();
Element.show(tbsb);
},
onFailure:function(transport){
commentTipBox.setText(MultiLang.s13+"<a href='javascript:genTrackbacks("+topicId+")'>"+MultiLang.s11+"</a>"+MultiLang.s12);
}
}
var request=new Ajax.Request("ajax.aspx",option);
return;
}catch(e){
return;
}
}
function genTrackbackList(topicId){try{
var vcb=vcmap.getValue(topicId);
var bi=pn(vcb);
showCommentTipBox(MultiLang.s66,bi,"noButton");
var option={
parameters:"s="+Math.random()+"&oper=getTrackback&topicId="+topicId,
method:"get",
onSuccess:function(transport){
var rp=transport.responseText;
if(/^<(\d+)>/.exec(rp)==null){
commentTipBox.setText(rp);
commentTipBox.hideAfterSeconds(3);
return;
}
bi.childNodes[3].childNodes[0].childNodes[1].innerHTML=RegExp.$1;
if(RegExp.$1==0){
commentTipBox.setText(MultiLang.s155+"Trackback"+MultiLang.s156);
commentTipBox.hideAfterSeconds(3);
return;
}
setTbOpen(getViewTb(bi));
vcb.innerHTML=RegExp.rightContext;
commentTipBox.hide();
Element.show(vcb);
},
onFailure:function(transport){
commentTipBox.setText(MultiLang.s13+"<a href='javascript:genCommentList("+topicId+")'><font color='blue'>"+MultiLang.s11+"</font></a>"+MultiLang.s12);
}
}
var request=new Ajax.Request("ajax.aspx",option);
return;
}catch(e){
return;
}
}
function attachPostEvent(topicId,pcb){
var btn=pcb.childNodes[0].childNodes[pcb.childNodes[0].childNodes.length-1].childNodes[2];
var iptAuthor=pcb.childNodes[0].childNodes[pcb.childNodes[0].childNodes.length-2].childNodes[1];
var taContent=pcb.childNodes[0].childNodes[pcb.childNodes[0].childNodes.length-1].childNodes[1];
var tipBox=new TipBox("",{});
pcb.childNodes[0].insertBefore(tipBox.box,pcb.childNodes[0].childNodes[1]);
btn.onclick=function addComment(){
if(tipBox.using){
tipBox.setText(MultiLang.s157);
return;
}
if(iptAuthor.value.trim().length==0 || taContent.value.trim().length==0){
tipBox.setText(MultiLang.s158);
tipBox.show();
tipBox.hideAfterSeconds(3);
tipBox.using=false;
return;
}
tipBox.show();
tipBox.setText(MultiLang.s159,"noCloseButton");
var option={
parameters:"author="+escape2(iptAuthor.value)+"&memo="+escape2(taContent.value)+"&topicId="+topicId,
method:"post",
onSuccess:function(transport){
var sortId=0;
var response=transport.responseText;
if(/^\d{4}-\d{1,2}-\d{1,2}/.test(response)){
tipBox.setText(MultiLang.s160);
tipBox.hideAfterSeconds(3);
var bi=pn(pcb);
var count=bi.childNodes[3].childNodes[0].childNodes[1].innerHTML;
count++;
bi.childNodes[3].childNodes[0].childNodes[1].innerHTML=count;
togglePostCommentBox(topicId,bi.childNodes[3].childNodes[0]);
showCommentTipBox(MultiLang.s160,bi);
addCommentToLeft(iptAuthor.value,taContent.value,topicId,sortId);
resetPcb(pcb);
commentTipBox.hideAfterSeconds(3);
}
else{
tipBox.setText(response);
tipBox.hideAfterSeconds(3);
}
},
onFailure:function(transport){
tipBox.using=false;
tipBox.setText(MultiLang.s161);
tipBox.hideAfterSeconds(3);
}
}
var request=new Ajax.Request("ajax.aspx?s="+Math.random()+"&oper=addComment",option);
}
}
function resetPcb(pcb){
pcb.childNodes[0].childNodes[pcb.childNodes[0].childNodes.length-2].childNodes[1].value="";
pcb.childNodes[0].childNodes[pcb.childNodes[0].childNodes.length-1].childNodes[1].value="";
}
function pn(e){
n=e.previousSibling;
while(n.tagName.toLowerCase()!="dl"){
if(!n.previousSibling)return null;
n=n.previousSibling;
}
return n;
}
function addCommentToLeft(author,content,topicId,sortId){
var n=$("newComment");
if(!n)return;
var str="<span>"+author.escapeHTML2()+MultiLang.s36+"</span>";
str+=("<a href='javascript:gsb("+topicId+")'>"+cutLeft(content,50).escapeHTML2()+"</a>");
var dd=document.createElementWithText("dd",str);
if(cc(n)>10)n.removeChild(n.childNodes[ci(cc(n)-1)]);
n.insertBefore(dd,n.childNodes[ci(1)]);
}
function postMsg(){
try{
if(msgTipBox.using){
msgTipBox.toggleText(MultiLang.s157,1);
return;
}
if($F("tbAuthor").trim().length==0 || $F("tbTitle").trim().length==0 || $F("tbContent").trim().length==0 || $F("ddlMsgSort")=="0"){
msgTipBox.setText(MultiLang.s162);
msgTipBox.show();
msgTipBox.hideAfterSeconds(3);
msgTipBox.using=false;
return;
}
msgTipBox.show();
msgTipBox.setText(MultiLang.s163,"noCloseButton");
var option={
parameters:"author="+escape2($F("tbAuthor"))+"&title="+escape2($F("tbTitle"))+"&content="+escape2($F("tbContent"))+"&sortId="+$F("ddlMsgSort"),
method:"post",
onSuccess:function(transport){
var response=transport.responseText;
if(/^<(\d+)><(\d+)>$/.exec(response)){
msgTipBox.setText(MultiLang.s164);
msgTipBox.hideAfterSeconds(3);
if(RegExp.$2==1)addMsgToLeft(RegExp.$1,$F("ddlMsgSort"));
resetPostMsgBox();
}
else{
msgTipBox.setText(response);
msgTipBox.hideAfterSeconds(3);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -