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

📄 editor.js

📁 论坛建站的源代码
💻 JS
📖 第 1 页 / 共 5 页
字号:
//Emoticon_Part Start
var YuZiCellWidth = 20;
var YuZiCellHeight = 20;
var YuZiRowNum = 4;
var YuZiColNum = 9;
var YuZiCurTab = 0;
var YuZiCurPage = 0;
var YuZiShowWidth = 75;
var YuZiShowHeight = 75;
var YuZiSnapThumb = 0; 				//需要截取缩略图时候,把这个改为1
var YuZiCustomSizeLock = 1; 		//是否开启自定义大小
var IsLoaded = false;

var EmoticonNode,YuZiTabs;

function LoadEmoticonXML(){
	var XmlDom = GetXmlDom();
	XmlDom.async = false;
	XmlDom.load("Xml/Emoticons.XML");
	var XmlDomRoot = XmlDom.documentElement;
	EmoticonNode = XmlDomRoot.getElementsByTagName('Emoticon');

	YuZiTabs = EmoticonNode.length	//表情——组数
	IsLoaded = true;
}


var gbMoNeedHidden = false;

function Gel(id, obj) {
	obj = (obj == null ? document : obj);
	return obj.getElementById(id);
}

function BbsxpCalcCurPages() {//每组表情页数
	var iDLen = EmoticonNode[YuZiCurTab].getElementsByTagName('ICON').length;		//每组表情数
	
	var iPLen = YuZiRowNum * YuZiColNum;
	var fv = iDLen / iPLen;
	if (iDLen % iPLen == 0) {
		return fv == 0 ? 1 : parseInt(fv);
	}
	else {
		return Math.round(fv + 0.5);
	}
}

function BbsxpJustifyImg(oImg, iWidth, iHeight, bPos) {//单元格表情按比例缩放
	var oNewImg = new Image();
	oNewImg.src = oImg.src;
	
	var w = oNewImg.width;
	var h = oNewImg.height;
	var wb = w / iWidth;
	var hb = h / iHeight;

	if (wb > 1 || hb > 1) {//等比例缩少
		if (wb > hb) {
			oImg.width = iWidth;
			oImg.height = h * iHeight / w;
		}
		else {
			oImg.width = w * iWidth / h;
			oImg.height = iHeight;
		}
		h = oImg.height;
	}
	else {
		oImg.width = w;
		oImg.height = h;
	}

	if (bPos) {
		oImg.style.top = ((iHeight - h) / 2) + "px";
	}

	return;
}

function EmoticonHidePanel() {
	try{
		if (gbMoNeedHidden) {
			Gel("moShowPanel").style.display = "none";
		}
	}catch(e){}
}

function BbsxpEmoticonShow(sUrl, iOffset, oldObj) {
	var obj = Gel("moShowPanel");
	if (sUrl == null || sUrl == "") {
		gbMoNeedHidden = true;
		setTimeout("EmoticonHidePanel()", 300);
	}
	else if (EmoticonCurObj == oldObj){
		gbMoNeedHidden = false;
		var div = Gel("moDivContainer");
		obj.style.top = parseInt(div.offsetTop) + "px";
		if (iOffset < YuZiColNum / 2) {
			obj.style.left = (parseInt(div.offsetLeft) + parseInt(div.offsetWidth) - YuZiShowWidth) + "px";
		}
		else {
			obj.style.left = div.offsetLeft + "px";
		}
		obj.innerHTML = "<img src='" + sUrl + "' width=" + YuZiShowWidth + " height=" + YuZiShowHeight + " onload='BbsxpJustifyImg(this, " + YuZiShowWidth + "," + YuZiShowHeight + ", true);this.style.zIndex = 1;Gel(\"moShowLoadDiv\").style.display = \"none\";' style='position:relative;'></img><div id='moShowLoadDiv' style='text-align:center;position:absolute;left:0;top:0;background:#fff;width:" + YuZiShowWidth + "px;height:" + YuZiShowHeight + "px;'><div style='font:normal 12px Verdana;color:#888;margin-top:" + (YuZiShowHeight/2 - 6) + "px;'>loading...</div></div>";
		obj.style.display = "";
	}
}

var EmoticonCurObj = null;
function BbsxpOnMouseOver(obj, iOffset) {
	if (YuZiSnapThumb) {return ;}
	obj.style.border='1px solid #000080';
	EmoticonCurObj = obj;
	setTimeout(function() {try{BbsxpEmoticonShow(obj.getElementsByTagName("IMG")[0].getAttribute("sval"), iOffset, obj);}catch(e){}}, 300);
}

function BbsxpOnMouseOut(obj) {
	if (YuZiSnapThumb) {return ;}
	obj.style.border='1px solid #F6F6F6';
	EmoticonCurObj = null;
	BbsxpEmoticonShow();
}

function BbsxpGetPageText() {
	return (YuZiCurPage + 1) + "/" + BbsxpCalcCurPages();
}

function BbsxpRefreshData() {
	Gel("moTabContainer").innerHTML = BbsxpTab();
	Gel("moDivContainer").innerHTML = BbsxpTable();
	Gel("moPageText").innerHTML = BbsxpGetPageText();
}

function BbsxpChangeTab(iTab) {
	if (iTab >= YuZiTabs || iTab == YuZiCurTab) {
		return;
	}
	YuZiCurPage = 0;
	YuZiCurTab = iTab;
	BbsxpRefreshData();
}

function BbsxpNextPage() {
	if (YuZiCurPage + 1 >= BbsxpCalcCurPages()) {
		return ;
	}
	YuZiCurPage += 1;
	BbsxpRefreshData();
}

function BbsxpPrevPage() {
	if (YuZiCurPage <= 0) {
		return ;
	}
	YuZiCurPage -= 1;
	BbsxpRefreshData();
}

function BbsxpCell(iCurTab, iCurPage, iNum, iOffset) {
	iNum = iCurPage * YuZiRowNum * YuZiColNum + iNum;
	var data = EmoticonNode[iCurTab].getElementsByTagName('ICON');	//第 iCurTab 组表情数据
	if (iNum >= data.length) {
		return "";
	}
	
	var sSrc = EmoticonNode[iCurTab].getAttributeNode('PathName').nodeValue + data[iNum].getAttributeNode('FileName').nodeValue;		//获取 第 iCurTab 组、第 iNum 个 表情符号的路径
	
	return "<img onclick='BBSXPExecute(\"YuZi_ICON_END\", \"" + sSrc + "\");' sval='" + sSrc + "' src='" + sSrc + "' title='" + GetNodeValue(data[iNum]) + "' width=" + YuZiCellWidth + " height=" + YuZiCellHeight + " onload='BbsxpJustifyImg(this, " + YuZiCellWidth + "," + YuZiCellHeight + ", true);' style='position:relative;cursor:pointer'></img>";
}

function BbsxpTable() {
	var pdivh = "<div style='width:" + YuZiCellWidth + "px;height:" + YuZiCellHeight + "px;'>";
	var code = "<table cellpadding=0 cellspacing=" + (YuZiSnapThumb ? 0 : 1) + " bgcolor=#DFE6F6>";
	for (var i = 0; i < YuZiRowNum; i++) {
		code += "<tr>";
		for (var j = 0; j < YuZiColNum; j++) {
			var cell = BbsxpCell(YuZiCurTab, YuZiCurPage, i * YuZiColNum + j, j);
			code += "<td align=center valign=middle width=" + (YuZiCellWidth + (YuZiSnapThumb ? 0 : 2)) + "px height=" + (YuZiCellHeight + (YuZiSnapThumb ? 0 : 2)) + "px style='background:#f6f6f6;padding:" + (YuZiSnapThumb ? 0 : 1) + "px;border:" + (YuZiSnapThumb ? 0 : 1) + "px solid #F6F6F6;' " + (cell != "" ? "onmouseover='BbsxpOnMouseOver(this, " + j + ");' onmouseout='BbsxpOnMouseOut(this);'>" + pdivh + cell : ">" + pdivh) + "</div></td>";
		}
		code += "</tr>";
	}
	return code + "</table>";
}

function BbsxpTab() {
	if (YuZiCustomSizeLock) {//根据定义大小,重定向:宽,高,行,列
		YuZiCellWidth = parseInt(EmoticonNode[YuZiCurTab].getAttributeNode('Width').nodeValue);
		YuZiCellHeight = parseInt(EmoticonNode[YuZiCurTab].getAttributeNode('Height').nodeValue);
		YuZiRowNum = parseInt(EmoticonNode[YuZiCurTab].getAttributeNode('TableRow').nodeValue);
		YuZiColNum = parseInt(EmoticonNode[YuZiCurTab].getAttributeNode('TableCol').nodeValue);
	}

	var code = "";
	for (var i = 0; i < YuZiTabs; i++) {
		code += "<span style='color:" + (YuZiCurTab == i ? "#000;border:1px solid #DFE6F6;font-weight:bold;border-bottom:1px solid #f6f6f6;border-top:2px solid #FFC83C" : "#000" ) + ";padding:3px 7px 2px 7px;cursor:pointer;' onclick='BbsxpChangeTab(" + i + ")'  unselectable='on'>" + EmoticonNode[i].getAttributeNode('CategoryName').nodeValue + "</span>";
	}
	return code;
}

function BbsxpBtnMouse(obj, down) {
	var s = obj.style;
	s.position = "relative";
	s.top = down ? "1px" : "0px";
	s.left = down ? "1px" : "0px";
}

function BBSXPCube() {
	if(!IsLoaded)LoadEmoticonXML();
	var str;
	str = "<div style='padding:10px 5px 0 5px;' unselectable='on'>";
	str += "<div id='moTabContainer' style='font:normal 12px Verdana;color:#000;padding:2px 6px' unselectable='on'>" + BbsxpTab() + "</div>";
	str += "<div id='moDivContainer' unselectable='on'>" + BbsxpTable() + "</div>";
	
	str += "<div align=right style='text-aling:right;font-size:12px;padding:5px 0 5px 0;color:#000;' unselectable='on'>";
	str += "<span style='float:left'><a href='http://www.biaoqing.com/' target=_blank title='表情网'>更多表情</a></span>"
	str += "<span style='margin:0 10px 0 0;color:#000;font:normal 12px Verdana;' id='moPageText' unselectable='on'>" + BbsxpGetPageText() + "</span>";
	str += "<span style='cursor:pointer;margin:0 2px 0 2px;font-weight:bold;background:#eff7ff;border:1px solid #8ba8c8;color:#000;padding:2px 8px 0 8px' onclick='BbsxpPrevPage();' onmousedown='BbsxpBtnMouse(this,1);' onmouseup='BbsxpBtnMouse(this,0);' title='上一页' unselectable='on'>&lt;</span>";
	str += "<span style='cursor:pointer;margin:0 2px 0 2px;font-weight:bold;background:#eff7ff;border:1px solid #8ba8c8;color:#000;padding:2px 8px 0 8px' onclick='BbsxpNextPage();' onmousedown='BbsxpBtnMouse(this,1);' onmouseup='BbsxpBtnMouse(this,0);' title='下一页' unselectable='on'>&gt;</span>";
	str += "</div>";
	
	str += "<div id='moShowPanel' style='background:#fff;position:absolute;left:0;top:0;border:1px solid #004B97;width:" + YuZiShowWidth + "px;height:" + YuZiShowHeight + "px;text-align:center;display:none' unselectable='on'></div>";
	str += "<div id='moMainLoadDiv' style='font:normal 12px Verdana;display:none;position:absolute;text-valign:center;' unselectable='on'><img src='images/loading.gif' width=16 height=16>loading...</div>";
	str += "</div>";
	
	str += "<img id='moPPL' style='display:none;'/>";
	return str;
}
//Emoticon_Part End

var YuZi_SAFE_MODE = false; 		// true or false
var YuZi_CurrentMode = "DESIGN";
var YuZi_IsChangeMode = false;
var YuZi_TdHeight = -1;
var YuZi_FONT_FAMILY = "Courier New";
var YuZi_WIDTH = "100%";
var YuZi_HEIGHT = "100%";
var YuZi_SKIN_PATH  = "Images/Editor/";
var YuZi_MENU_BORDER_COLOR = '#AAAAAA';
var YuZi_MENU_BG_COLOR = '#EFEFEF';
var YuZi_MENU_TEXT_COLOR = '#222222';
var YuZi_MENU_SELECTED_COLOR = '#CCCCCC';
var YuZi_TOOLBAR_BORDER_COLOR = '#DDDDDD';
var YuZi_TOOLBAR_BG_COLOR = '#EFEFEF';
var YuZi_FORM_BORDER_COLOR = '#DDDDDD';
var YuZi_FORM_BG_COLOR = '#FFFFFF';
var YuZi_BUTTON_COLOR = '#AAAAAA';
var YuZi_ForeColor = '#000000';
var YuZi_BackColor = '#FFFFFF';

var YuZi_LANG = {
	INPUT_URL		: "请输入正确的URL地址。",
	CONFIRM			: "确定",
	CANCEL			: "取消",
	PREVIEW			: "预览",
	REMOTE			: "URL:",
	NEW_WINDOW		: "新窗口",
	CURRENT_WINDOW	: "当前窗口",
	TARGET			: "目标",
	SUBJECT			: "标题",
	CurrentMode		: "编辑器处于代码状态下不能发送内容!",
	SubjectMinLen	: "标题不能小于 2 个字符!",
	SubjectMaxLen	: "标题不能多于 100 个字符!",
	CategoryMaxLen	: "类别不能多于 25 个字符!",
	BodyMinLen		: "内容不能小于 2 个字符!",
	BodyMaxLen		: "内容不能超过 60000 个字符!",
	VerifyCode		: "请输入验证码!",
	DesignMode		: "设计模式",
	CodeMode		: "代码模式",
	AddEditorArea	: "增大编辑区",
	ReduceEditorArea: "减小编辑区",
	Search			: "查 找:",
	Replace			: "替换为:",
	ReplaceButton	: "替换",
	Case			: "大小写:",
	CaseChkBox		: "区分大小写",
	WIDTH			: "宽度",
	HEIGHT			: "高度",
	Transparent		: "透明",
	AutoStart		: "自动播放",
	StatusBar		: "显示状态栏",
	ED2K		: "ED2K链接地址(每行表示一个ED2K链接地址)",
	CopyPaste		: "请用鼠标右击完成 剪切/复制/粘贴 的操作"
}

var YuZi_FONT_NAME = Array(
	Array('宋体', '宋体'),
	Array('黑体', '黑体'),
	Array('楷体_GB2312', '楷体_GB2312'), 
	Array('隶书', '隶书'),
	Array('幼圆', '幼圆'),
	Array('新宋体', '新宋体'),
	Array('Arial', 'Arial'),
	Array('Arial Black', 'Arial Black'),
	Array('Courier New','Courier New'),
	Array('Garamond','Garamond'),
	Array('Georgia','Georgia'),
	Array('Tahoma','Tahoma'),
	Array('Verdana', 'Verdana'),
	Array('Times New Roman', 'Times New Roman'),
	Array('GulimChe', 'GulimChe'),
	Array('MS Gothic', 'MS Gothic')
);
var YuZi_SPECIAL_CHARACTER = Array(
	'§','№','☆','★','○','●','◎','◇','◆','□','℃','‰','■','△','▲','※',
	'→','←','↑','↓','〓','¤','°','#','&','@','\','︿','_',' ̄','―','α',
	'β','γ','δ','ε','ζ','η','θ','ι','κ','λ','μ','ν','ξ','ο','π','ρ',
	'σ','τ','υ','φ','χ','ψ','ω','≈','≡','≠','=','≤','≥','<','>','≮',
	'≯','∷','±','+','-','×','÷','/','∫','∮','∝','∞','∧','∨','∑','∏',
	'∪','∩','∈','∵','∴','⊥','∥','∠','⌒','⊙','≌','∽','〖','〗',
	'【','】','(',')','[',']'
);

var YuZi_TOP_TOOLBAR_ICON = Array(
	Array('YuZi_TITLE', 'title.gif', '标题'),
	Array('YuZi_FONTNAME', 'font.gif', '字体'),
	Array('YuZi_FONTSIZE', 'fontsize.gif', '文字大小'),
	Array('YuZi_TEXTCOLOR', 'fbcolor.gif', '文字颜色'),
	Array('YuZi_BGCOLOR', 'fgcolor.gif', '文字背景颜色'),
	Array('YuZi_BOLD', 'bold.gif', '粗体'),
	Array('YuZi_ITALIC', 'italic.gif', '斜体'),
	Array('YuZi_UNDERLINE', 'underline.gif', '下划线'),
	Array('YuZi_STRIKE', 'strikethrough.gif', '删除线'),
	Array('YuZi_JUSTIFYLEFT', 'justifyleft.gif', '左对齐'),
	Array('YuZi_JUSTIFYCENTER', 'justifycenter.gif', '居中'),
	Array('YuZi_JUSTIFYRIGHT', 'justifyright.gif', '右对齐'),
	Array('YuZi_JUSTIFYFULL', 'justifyfull.gif', '两端对齐'),
	Array('YuZi_NUMBEREDLIST', 'numberedlist.gif', '编号'),
	Array('YuZi_UNORDERLIST', 'unorderedlist.gif', '项目符号'),
	Array('YuZi_Paragraph','Paragraph.gif','段落'),
	Array('YuZi_INDENT', 'indent.gif', '减少缩进'),
	Array('YuZi_OUTDENT', 'outdent.gif', '增加缩进'),
	Array('YuZi_SUBSCRIPT', 'subscript.gif', '下标'),
	Array('YuZi_SUPERSCRIPT', 'superscript.gif', '上标')
);

var YuZi_BOTTOM_TOOLBAR_ICON = Array(
	Array('YuZi_LINK', 'link.gif', '创建超级链接'),
	Array('YuZi_UNLINK', 'unlink.gif', '删除超级链接'),
	Array('YuZi_ED2K', 'ed2k.gif', '创建ED2K链接'),
	Array('YuZi_SPECIALCHAR', 'specialchar.gif', '插入特殊字符'),
	Array('YuZi_ICON', 'emoticons.gif', '插入表情'),
	Array('YuZi_TABLE', 'table.gif', '插入表格'),
	Array('YuZi_IMAGE', 'image.gif', '插入图片'),
	Array('YuZi_Media', 'Media.gif', '插入 FLASH、MediaPlayer、RealPlayer 文件'),
	Array('Break','Break.gif','换行符'),
	Array('YuZi_HR', 'hr.gif', '横线'),
	Array('YuZi_Replace','replace.gif','替换'),
	Array('YuZi_CUT', 'cut.gif', '剪切'),
	Array('YuZi_COPY', 'copy.gif', '复制'),
	Array('YuZi_PASTE', 'paste.gif', '粘贴'),
	Array('YuZi_ClearUP','cleanup.gif','清洁代码'),
	Array('YuZi_UNDO', 'undo.gif', '撤消'),
	Array('YuZi_REDO', 'redo.gif', '恢复'),
	Array('YuZi_SELECTALL', 'selectall.gif', '全选'),

⌨️ 快捷键说明

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