⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 postedit.js

📁 LiteBlaster 是一款基于 .NET Framework 原创的 ASP.NET 论坛系统。后台程序库采用 C#/VB.NET 编写
💻 JS
字号:
// for post edit
// x_core.js, x_event.js, ajax.js, main.js, xwindow.js needed

function bodyLarger(){
	var bodyText = xGetElementById('PostBody');
	bodyText.rows += 2;
}
function bodySmaller(){
	var bodyText = xGetElementById('PostBody');
	if(bodyText.rows < 3){
		return;
	}
	bodyText.rows -= 2;
}


var uploadWin, uploadCheck;
function updatePost(){
	var bodyText = xGetElementById('PostBody').value;
	var extraReason = '';
	if(bodyText.length == 0){
		alert('您需要填写正文。');
		return;
	}
	if(type == 'edit'){
		extraReason = xGetElementById('PostReason').value;
		if(extraReason.length == 0){
			alert('您需要填写修改原因。');
			return;
		}
	}
	var moodEnabled, codeEnabled;
	try{
		moodEnabled = xGetElementById('PostMoodEnabled').checked;
	}catch(e){
		moodEnabled = false;
	}
	try{
		codeEnabled = xGetElementById('PostCodeEnabled').checked;
	}catch(e){
		codeEnabled = false;
	}
	var btn = xGetElementById('PostSubmit');
	setInputDisabled(btn, true);
	var params = 'type=' + type + '&mood=' + moodEnabled + '&code=' + codeEnabled;
	switch(type){
		case 'edit':
			params += '&reason=' + encodeURIComponent(extraReason) + '&id=' + postId;
			break;
		case 'reply':
			params += '&topicid=' + topicId;
			break;
		case 'topic':
			//vote_body need not encoding, for encoded on start
			params += '&topic_title=' + encodeURIComponent(topic_title) + '&topic_boardid=' + topic_boardId + '&topic_notifyposterwhenreplied=' + topic_notifyposterwhenreplied + '&vote=' + vote + '&vote_title=' + encodeURIComponent(vote_title) + '&vote_otherenabled=' + vote_otherenabled + '&vote_optionlimit=' + vote_optionlimit + '&vote_body=' + vote_body;
			break;
	}
	params += '&return=result&body=' + encodeURIComponent(bodyText);
	var loader = new ajax.loader('PostEdit.aspx', 'POST', updatePost_onload, updatePost_onerror, params);
	loader.btn = btn;
}
function updatePost_onload(){
	var xmlDoc = this.req.responseXML;
	var errInfo = getXmlElementText(xmlDoc, 'Error');
	if(errInfo){
		alert(errInfo);
		setInputDisabled(this.btn, false);
	}else{
		switch(type){
			case 'edit':
				if(referrerUrl.length == 0){
					referrerUrl = 'Topic.aspx?id=' + topicId;
				}
				break;
			case 'topic':
				postId = parseInt(getXmlElementText(xmlDoc, 'ID'));
				referrerUrl = 'Board.aspx?id=' + topic_boardId;
				break;
			case 'reply':
				postId = parseInt(getXmlElementText(xmlDoc, 'ID'));
				referrerUrl = 'Topic.aspx?id=' + topicId + '&page=last';
				break;
		}
		var upCount;
		try{
			upCount = parseInt(xGetElementById('PostUploadCount').value);
		}catch(e){
		}
		if(isNaN(upCount)){
			upCount = 0;
		}
		if(upCount > 0){
			var uploadBtn = xGetElementById('UploadSubmit');
			uploadBtn.onclick = new Function('updatePost_uploadFiles(this, ' + postId + ', ' + upCount + ')');
			setElementVisible(uploadBtn, true);
			setInputDisabled('PostUploadCount', true);
			alert('提交帖子信息成功。单击“上传附件”将弹出上传向导。');
		}else{
			window.location.href = referrerUrl;
		}
	}
}
function updatePost_onerror(){
	alert('提交帖子过程中出错。');
	setInputDisabled(this.btn, false);
}
function updatePost_uploadFiles(uploadBtn, postId, upCount){
	setInputDisabled(uploadBtn, true);
	uploadWin = new xWindow('AttachmentsUploader', 600, 400, -1, -1, 0, 0, 0, 1, 1, 0);
	uploadWin.load('Upload.aspx?upload=attachment&postid=' + postId + '&count=' + upCount);
	uploadCheck = setInterval('updatePost_checkUploadFinished()', 2000);
}
function updatePost_checkUploadFinished(){
	if(uploadWin.w.closed){
		clearInterval(uploadCheck);
		window.location.href = referrerUrl;
	}
}


function deleteAttachment(e, uploadId){
	var btn = new xEvent(e).target;
	if(!confirm('确定要删除该附件吗?')){
		return;
	}
	setInputDisabled(btn, true);
	var params = 'type=removeattachment&return=result&uploadid=' + uploadId;
	var loader = new ajax.loader('PostEdit.aspx', 'POST', deleteAttachment_onload, deleteAttachment_onerror, params);
	loader.btn = btn;
}
function deleteAttachment_onload(){
	var xmlDoc = this.req.responseXML;
	var errInfo = getXmlElementText(xmlDoc, 'Error');
	if(errInfo){
		alert(errInfo);
		setInputDisabled(this.btn, false);
	}else{
		var tb = xGetElementById(this.btn).parentNode.parentNode.parentNode;	//tbody
		tb.deleteRow(0);														//only one row
		var count_span = xGetElementById('UploadCount');
		count_span.innerHTML = (parseInt(count_span.innerHTML) - 1).toString();
	}
}
function deleteAttachment_onerror(){
	alert('删除附件过程中出错。');
	setInputDisabled(this.btn, false);
}


function previewPostBody(preview){
	setElementVisible('PostBodyEditorContainer', !preview);
	setElementVisible('PostBodyPreviewerContainer', preview);
	if(preview){
		xGetElementById('PostBodyPreviewerStatus').innerHTML = '正在加载预览,请稍候……';
		xGetElementById('PostBodyPreviewerBody').innerHTML = '';
		var moodEnabled, codeEnabled;
		try{
			moodEnabled = xGetElementById('PostMoodEnabled').checked;
		}catch(e){
			moodEnabled = false;
		}
		try{
			codeEnabled = xGetElementById('PostCodeEnabled').checked;
		}catch(e){
			codeEnabled = false;
		}
		var params = 'type=preview&return=result&body=' + encodeURIComponent(xGetElementById('PostBody').value) + '&mood=' + moodEnabled + '&code=' + codeEnabled;
		var loader = new ajax.loader('PostEdit.aspx', 'POST', previewPostBody_onload, previewPostBody_onerror, params);
	}else{
		xGetElementById('PostBodyPreviewerBody').innerHTML = '';
	}
}
function previewPostBody_onload(){
	var xmlDoc = this.req.responseXML;
	var errInfo = getXmlElementText(xmlDoc, 'Error');
	if(errInfo){
		xGetElementById('PostBodyPreviewerStatus').innerHTML = errInfo;
	}else{
		xGetElementById('PostBodyPreviewerStatus').innerHTML = '';
		xGetElementById('PostBodyPreviewerBody').innerHTML = getXmlElementText(xmlDoc, 'Return');
	}
}
function previewPostBody_onerror(){
	xGetElementById('PostBodyPreviewerStatus').innerHTML = '加载预览结果过程中出错。';
}


var partialMoodListVisible = false;
function viewMoodList(invoker){
	if(currentMenu == null){
		partialMoodListVisible = false;
	}
	if(!partialMoodListVisible){
		loadPartialMoodList();
		showMenu('PartialMoodListContainer', invoker);
	}else{
		hideMenu(null);
	}
	partialMoodListVisible = !partialMoodListVisible;
}
function browseMoodList(){
	var winChild = new xWindow('SystemMoodsBrowser', 600, 400, -1, -1, 0, 0, 0, 1, 0, 0);
	winChild.load('SysImgViewer.aspx?type=1');
	if(partialMoodListVisible){
		hideMenu(null);
	}
}

var partialMoodListLoadStatus = 0;
function loadPartialMoodList(){
	if(partialMoodListLoadStatus != 0){
		return;
	}
	partialMoodListLoadStatus = 1;
	var container = xGetElementById('PartialMoodList');
	container.innerHTML = '正在加载部分表情列表……';
	var params = 'type=moodlist&return=result';
	var loader = new ajax.loader('PostEdit.aspx', 'POST', loadPartialMoodList_onload, loadPartialMoodList_onerror, params);
	loader.container = container;
}
function loadPartialMoodList_onload(){
	var xmlDoc = this.req.responseXML;
	var errInfo = getXmlElementText(xmlDoc, 'Error');
	if(errInfo){
		this.container.innerHTML = encodeHtml(errInfo);
		partialMoodListLoadStatus = 0;
	}else{
		this.container.innerHTML = getXmlElementText(xmlDoc, 'Return');
		partialMoodListLoadStatus = 2;
	}
}
function loadPartialMoodList_onerror(){
	this.container.innerHTML = '加载表情列表过程中出错。';
	partialMoodListLoadStatus = 0;
}


function PostBody_onkeydown(e){
	e = (e) ? e : window.event;
	if(e.keyCode == 9){
		// tab support
		if(e.preventDefault){
			e.preventDefault();
		}else{
			e.returnValue = false;
		}
		richTextCtrl.replaceText('\t');
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -