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

📄 www2-addons.js

📁 KBS的BBS源码
💻 JS
📖 第 1 页 / 共 2 页
字号:
function showReplyFormReal(rf) {	rf.pDiv.innerHTML = rf.f() + '</textarea>' + rf.t();	changeQM('s');	makeViewable("divReplyForm");}function replyForm(board,reid,title,att,signum,sig,ano,outgo,lsave) {	this.board = board;	this.reid = reid;	this.title = title;	this.att = att;	this.signum = signum;	this.sig = sig;	this.ano = ano;	this.outgo = outgo;	this.lsave = lsave;	this.pDiv = (parent && parent.document.getElementById("divReplyForm"));	if (this.pDiv) {		var self = this;		addBootFn(function() {			parent.showReplyFormReal(self);		});	}}replyForm.prototype.f = function() {	var i,focusEle = (this.pDiv ? ' id="rff"' : ' id="sfocus"');	var html = '<form name="postform" method="post" action="bbssnd.php?board=' + this.board + '&reid=' + this.reid + '" class="large">'		+ '<fieldset><legend>' + (this.reid ? "回复文章" : "发表文章") + '</legend>'		+ '发信人: ' + getUserid() + ', 信区: ' + this.board + ' [<a href="bbsdoc.php?board=' + this.board + '">本讨论区</a>] [<a href="bbsnot.php?board=' + this.board + '" target="_blank">查看讨论区备忘录</a>]<br/>';	var nt = "";	if (this.reid) nt = (this.title.substr(0,4).toLowerCase() == "re: ") ? this.title : ("Re: " + this.title);	html += '标&nbsp;&nbsp;题: <input type="text" tabindex="1" name="title" size="40" maxlength="100" value="'		+ htmlize(nt,1) + '"' + (this.reid?'':focusEle) + '/><br/>';	if (this.att) {		html += '附&nbsp;&nbsp;件: <input type="text" name="attachname" size="40" value="" disabled="disabled" />'			+ ' <a href="bbsupload.php" target="_blank">操作附件</a>(新窗口打开)<br/>';	}	html += '签名档 <select name="signature">';	if (this.signum == 0) html += '<option value="0" selected="selected">不使用签名档</option>';	else {		html += '<option value="0">不使用签名档</option>';		for (i=1; i<=this.signum; i++) {			html += '<option value="' + i + '"' + (this.sig==i?' selected="selected"':'') + '>第 ' + i + ' 个</option>';		}		html += '<option value="-1" ' + (this.sig<0?'selected="selected"':'') + '>随机签名档</option>';	}	html += '</select> [<a target="_blank" href="bbssig.php">查看签名档</a>]';	if (this.ano) html += '<input type="checkbox" name="anony" value="1" />匿名';	if (this.outgo) html += '<input type="checkbox" name="outgo" value="1"' + (this.lsave?'':' checked="checked"') + '/>转信';	html += '<input type="checkbox" name="mailback" value="1" />re文抄送信箱';	if (havejsmath) html += '<input type="checkbox" name="havemath" value="1" />数学公式';	if (this.pDiv) {		var rm = [['S','前三行(默认)'],['Y','该作者全文'],['N','不引用'],['R','R模式(不推荐)'],['A','全文']];		var v = '['		for (i in rm) {			var r = rm[i];			v += '<span class="clickable" title="回文模式:' + r[1] + '" onclick="changeQM(\'' + r[0] + '\')">' + r[0] + '</span>/';		}		v = v.substr(0,v.length-1) + ']';		html += ' ' + v;	}	html += '<br />';	html += '<textarea name="text" tabindex="2" onkeydown="return textarea_okd(dosubmit, event);" wrap="physical"' 		+ (this.reid?focusEle:'') + '>';	return(html);};replyForm.prototype.t = function() {	var html = '<br/>';	html += '<div class="oper"><input type="button" onclick="dosubmit();" tabindex="3" name="post" value="发表" />'		+ '&nbsp;&nbsp;&nbsp;&nbsp;<input class="sb1" type="reset" value="返回" onclick="history.go(-1)" /></div>';	html += '</fieldset></form>';	return(html);};function AnsiState() {	this.s = 0;}AnsiState.prototype = {	ESC_SET: 0x01,	FONT_SET: 0x02,	NEW_LINE: 0x04,	QUOTE_LINE: 0x08,	QUOTEHEADER_LINE: 0x10,	SET: function(b) { this.s |= b; },	CLR: function(b) { this.s &= ~b; },	ISSET: function(b) { return (this.s & b); },	ZERO: function() { this.s = 0; }};function StyleState() {	this.s = 0;	this.ansi = new Array();	this.ansi_t = 0;}StyleState.prototype = {	SET_FG: function(c) { this.s = (this.s & ~0x07) | (c & 0x07) },	SET_BG: function(c) { this.s = (this.s & ~0x70) | ((c & 0x07) << 4) },	GET_FG: function() { return (this.s & 0x0F); },	GET_BG: function() { return ((this.s & 0x70) >> 4); },	CLR_FG: function() { this.s &= ~0x0F; },	CLR_BG: function() { this.s &= ~0xF0; },	ZERO: function() { this.s = 0; },	SET: function(b) { this.s |= b; },	CLR: function(b) { this.s &= ~b; },	ISSET: function(b) { return (this.s & b); },	STYLE_UL: 0x0100,	STYLE_BLINK: 0x0200,	STYLE_ITALIC: 0x0400,	FG_BOLD: 0x08,	COLOR_BLACK: 0x00,	COLOR_RED: 0x01,	COLOR_GREEN: 0x02,	COLOR_YELLOW: 0x03,	COLOR_BULE: 0x04,	COLOR_MAGENTA: 0x05,	COLOR_CYAN: 0x06,	COLOR_WHITE: 0x07,	STYLE_QUOTE: 0x0000,	COLOR_QUOTE: 0x06,	STYLE_QUOTEHEADER: 0x0800,	COLOR_QUOTEHEADER: 0x03|0x08,	BG_SET: 0x80,	printStyle: function() {		var bg, fg, font_class;		if (this.ISSET(this.BG_SET)) {			bg = 8;		} else {			bg = this.GET_BG();		}		fg = this.GET_FG();		if (fg == 0 && bg == 0) {			font_class = "ff07";		} else {			font_class = "fb" + bg + " ff" + fg;		}		if (this.ISSET(this.STYLE_UL))			font_class += " fund";		if (this.ISSET(this.STYLE_ITALIC)) /* ?? no where set this */			font_class += " fita";		if (this.ISSET(this.STYLE_BLINK))			font_class += " fbli";		return "<font class=\"" + font_class + "\">";	},	addAnsi: function() {		this.ansi_t++;		this.ansi[this.ansi_t] = 0;	},	clearAnsi: function() {		this.ansi_t = 0;		this.ansi[0] = 0;	},	generateFontStyle: function() {		for (var i = 0; i <= this.ansi_t; i++) {			if (this.ansi[i] == 0) {				this.ZERO();				this.SET(this.COLOR_WHITE);			} else if (this.ansi[i] == 1)				this.SET(this.FG_BOLD);			else if (this.ansi[i] == 4)				this.SET(this.STYLE_UL);			else if (this.ansi[i] == 5)				this.SET(this.STYLE_BLINK);			else if (this.ansi[i] >= 30 && this.ansi[i] <= 37) {				this.SET_FG(this.ansi[i] - 30);			} else if (this.ansi[i] >= 40 && this.ansi[i] <= 47) {				this.SET_BG(this.ansi[i] - 40);			}		}	}};function htmlOutput(s) {	switch(s) {		case '&':			return "&amp;";		case '<':			return "&lt;";		case '>':			return "&gt;";		case ' ':			return "&nbsp;";		default:			return s;	}}function printRawAnsi(s, start, end) {	var ret = "";	for (var i = start; i < end; i++) {		if (s.charAt(i) == '\r')			ret += "*";		else if (s.charAt(i) == '\n')			ret += "<br/>";		else			ret += htmlOutput(s.charAt(i));	}	return ret;}function convertAnsi(s) {	var ansiState = new AnsiState();	var styleState = new StyleState();	var ret = new StringBuffer();	var buflen = s.length;	var ansi_begin = 0;	styleState.clearAnsi();	styleState.ZERO();	styleState.SET(styleState.COLOR_WHITE);	for (var i = 0; i < buflen; i++) {		if (ansiState.ISSET(ansiState.NEW_LINE)) {			ansiState.CLR(ansiState.NEW_LINE);			if (i < (buflen - 1) && (s.charAt(i) == ':' && s.charAt(i + 1) == ' ')) {				ansiState.SET(ansiState.QUOTE_LINE);				if (ansiState.ISSET(ansiState.FONT_SET))					ret.append("</font>");				/*				 * set quoted line styles 				 */				styleState.SET(styleState.STYLE_QUOTE);				styleState.CLR_FG();				styleState.CLR_BG();				styleState.SET(styleState.COLOR_QUOTE);				ret.append(styleState.printStyle() + ":");				ansiState.SET(ansiState.FONT_SET);				ansiState.CLR(ansiState.ESC_SET);				/*				 * clear ansi_val[] array 				 */				styleState.clearAnsi();				continue;			} else				ansiState.CLR(ansiState.QUOTE_LINE);			if (i < (buflen - 3) && (s.substring(i, i + 3) == "【 在")) {				ansiState.SET(ansiState.QUOTEHEADER_LINE);				if (ansiState.ISSET(ansiState.FONT_SET))					ret.append("</font>");				/*				 * set quote header line styles 				 */				styleState.SET(styleState.STYLE_QUOTEHEADER);				styleState.CLR_FG();				styleState.CLR_BG();				styleState.SET(styleState.COLOR_QUOTEHEADER);				ret.append(styleState.printStyle() + "【");				ansiState.SET(ansiState.FONT_SET);				ansiState.CLR(ansiState.ESC_SET);				/*				 * clear ansi_val[] array 				 */				styleState.clearAnsi();				continue;			} else				ansiState.CLR(ansiState.QUOTEHEADER_LINE);		}		if (i < (buflen - 1) && (s.charAt(i) == '\r' && s.charAt(i + 1) == '[')) {			if (ansiState.ISSET(ansiState.ESC_SET)) {				/*				 *[*[ or *[13;24*[ */				ret.append(printRawAnsi(s, ansi_begin, i));			}			ansiState.SET(ansiState.ESC_SET);			ansi_begin = i;			i++;                /* skip the next '[' character */		} else if (s.charAt(i) == '\n') {			if (ansiState.ISSET(ansiState.ESC_SET)) {				/*				 *[\n or *[13;24\n */				ret.append(printRawAnsi(s, ansi_begin, i));				ansiState.CLR(ansiState.ESC_SET);			}			if (ansiState.ISSET(ansiState.QUOTE_LINE)) {				/*				 * end of a quoted line 				 */				ret.append("</font>");				styleState.CLR(styleState.STYLE_QUOTE);				styleState.CLR(styleState.COLOR_QUOTE);				ansiState.CLR(ansiState.QUOTE_LINE);				ansiState.CLR(ansiState.FONT_SET);			}			if (ansiState.ISSET(ansiState.QUOTEHEADER_LINE)) {				/*				 * end of a quote header line 				 */				ret.append("</font>");				styleState.CLR(styleState.STYLE_QUOTEHEADER);				styleState.CLR(styleState.COLOR_QUOTEHEADER);				ansiState.CLR(ansiState.QUOTEHEADER_LINE);				ansiState.CLR(ansiState.FONT_SET);			}			ret.append("<br/>");			ansiState.SET(ansiState.NEW_LINE);		} else {			var c = s.charAt(i);			if (ansiState.ISSET(ansiState.ESC_SET)) {				if (c == 'm') {					/*					 *[0;1;4;31m */					if (ansiState.ISSET(ansiState.FONT_SET)) {						ret.append("</font>");						ansiState.CLR(ansiState.FONT_SET);					}					if (i < buflen - 1) {						styleState.generateFontStyle();						ret.append(styleState.printStyle());						ansiState.SET(ansiState.FONT_SET);						ansiState.CLR(ansiState.ESC_SET);						/*						 * STYLE_ZERO(font_style);						 */						/*						 * clear ansi_val[] array 						 */						styleState.clearAnsi();					}				} else if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) {					/*					 *[23;32H */					/*					 * ignore it 					 */					ansiState.CLR(ansiState.ESC_SET);					//styleState.ZERO();					/*					 * clear ansi_val[] array 					 */					styleState.clearAnsi();					continue;				} else if (c == ';') {					styleState.addAnsi();				} else if (c >= '0' && c <= '9') {					styleState.ansi[styleState.ansi_t] *= 10;					styleState.ansi[styleState.ansi_t] += (c - '0');				} else {					/*					 *[1;32/XXXX or *[* or *[[ */					/*					 * not a valid ANSI string, just output it 					 */					ret.append(printRawAnsi(s, ansi_begin, i + 1));					ansiState.CLR(ansiState.ESC_SET);					/*					 * clear ansi_val[] array 					 */					styleState.clearAnsi();				}			} else				ret.append(printRawAnsi(s, i, i + 1));		}	}	if (ansiState.ISSET(ansiState.FONT_SET)) {		ret.append("</font>");		ansiState.CLR(ansiState.FONT_SET);	}	return ret.toString();}/* WARNING: now I can only deal with only one ansi container in a page */function triggerAnsiDiv(obj,objInner) {	if (!(obj = getObj(obj))) return;	if (!(objInner = getObj(objInner))) return;	addBootFn(function() {		var o = document.createElement("div");		o.className = "AnsiSwitch";		o.innerHTML = "ANSI";		o.title = "切换 Ansi 显示";		obj.insertBefore(o,objInner);		obj.isAnsi = false;		addEvent(o,"click",function() {			obj.isAnsi = !obj.isAnsi;			obj.className = obj.isAnsi?"AnsiArticleColor":"AnsiArticleBW";			objInner.innerHTML = obj.isAnsi?convertAnsi(strPrint):strArticle;		});	});}

⌨️ 快捷键说明

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