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

📄 htmleditor.js

📁 6KB超经典BBS源代码..................ASP脚本
💻 JS
📖 第 1 页 / 共 4 页
字号:
var IMAGE_PATH;
var ICON_PATH;
var IMAGE_ATTACH_PATH;
var IMAGE_UPLOAD_CGI;
var MENU_BORDER_COLOR;
var MENU_BG_COLOR;
var MENU_TEXT_COLOR;
var MENU_SELECTED_COLOR;
var TOOLBAR_BG_COLOR;
var FORM_BORDER_COLOR;
var FORM_BG_COLOR;
var OBJ_NAME;
var SELECTION;
var RANGE;
var RANGE_TEXT;
var EDITFORM_DOCUMENT;
var UPLOAD_DOCUMENT;
var BROWSER;
var TOOLBAR_ICON;

var MSG_INPUT_URL = "请输入正确的URL地址。";
var MSG_INVALID_IMAGE = "只能选择GIF,JPG,PNG,BMP格式的图片,请重新选择。";
var MSG_INVALID_FLASH = "只能选择SWF格式的图片,请重新选择。";
var MSG_INVALID_MEDIA = "只能选择MP3,WMV,ASF,WMA,RM格式的图片,请重新选择。";
var MSG_SELECT_TARGET = "请选择目标文本。";
var MSG_INVALID_WIDTH = "宽度不是数字,请重新输入。";
var MSG_INVALID_HEIGHT = "高度不是数字,请重新输入。";
var MSG_INVALID_BORDER = "边框不是数字,请重新输入。";
var STR_WIDTH = "宽";
var STR_HEIGHT = "高";
var STR_BORDER = "边";
var STR_BUTTON_CONFIRM = "确定";
var STR_BUTTON_CANCEL = "取消";
var STR_BUTTON_PREVIEW = "预览";
var STR_BUTTON_LISTENING = "试听";
var STR_IMAGE_LOCAL = "本地";
var STR_IMAGE_REMOTE = "远程";
var STR_LINK_BLANK = "新窗口";
var STR_LINK_NOBLANK = "当前窗口";
var STR_LINK_TARGET = "目标";

var EDITOR_FONT_FAMILY = "SimSun";

var FONT_NAME = Array(
					Array('SimSun', '宋体'), 
					Array('SimHei', '黑体'), 
					Array('FangSong_GB2312', '仿宋体'), 
					Array('KaiTi_GB2312', '楷体'), 
					Array('NSimSun', '新宋体'), 
					Array('Arial', 'Arial'), 
					Array('Arial Black', 'Arial Black'), 
					Array('Times New Roman', 'Times New Roman'), 
					Array('Courier New', 'Courier New'), 
					Array('Tahoma', 'Tahoma'), 
					Array('Verdana', 'Verdana'), 
					Array('GulimChe', 'GulimChe'), 
					Array('MS Gothic', 'MS Gothic') 
					);
var ZOOM_TABLE = Array('250%', '200%', '150%', '120%', '100%', '80%', '50%');
var TITLE_TABLE = Array(
					Array('H1', '标题 1'), 
					Array('H2', '标题 2'), 
					Array('H3', '标题 3'), 
					Array('H4', '标题 4'), 
					Array('H5', '标题 5'), 
					Array('H6', '标题 6')
					);
var FONT_SIZE = Array(
					Array(1,'8pt'), 
					Array(2,'10pt'), 
					Array(3,'12pt'), 
					Array(4,'14pt'), 
					Array(5,'18pt'), 
					Array(6,'24pt'), 
					Array(7,'36pt')
				);
var SPECIAL_CHARACTER = Array('§','№','☆','★','○','●','◎','◇','◆','□','℃','‰','■','△','▲','※',
							'→','←','↑','↓','〓','¤','°','#','&','@','\','︿','_',' ̄','―','α',
							'β','γ','δ','ε','ζ','η','θ','ι','κ','λ','μ','ν','ξ','ο','π','ρ',
							'σ','τ','υ','φ','χ','ψ','ω','≈','≡','≠','=','≤','≥','<','>','≮',
							'≯','∷','±','+','-','×','÷','/','∫','∮','∝','∞','∧','∨','∑','∏',
							'∪','∩','∈','∵','∴','⊥','∥','∠','⌒','⊙','≌','∽','〖','〗','【','】');
var TOP_TOOLBAR_ICON = Array(
						Array('Html_SOURCE', 'source.gif', '42', '20', '视图转换'),
						Array('Html_PREVIEW', 'preview.gif', '20', '20', '预览'),
						Array('Html_ZOOM', 'zoom.gif', '20', '20', '显示比例'),
						Array('Html_UNDO', 'undo.gif', '20', '20', '回退'),
						Array('Html_REDO', 'redo.gif', '20', '20', '前进'),
						Array('Html_CUT', 'cut.gif', '20', '20', '剪切'),
						Array('Html_COPY', 'copy.gif', '20', '20', '复制'),
						Array('Html_PASTE', 'paste.gif', '20', '20', '粘贴'),
						Array('Html_SELECTALL', 'selectall.gif', '20', '20', '全选'),
						Array('Html_JUSTIFYLEFT', 'justifyleft.gif', '20', '20', '左对齐'),
						Array('Html_JUSTIFYCENTER', 'justifycenter.gif', '20', '20', '居中'),
						Array('Html_JUSTIFYRIGHT', 'justifyright.gif', '20', '20', '右对齐'),
						Array('Html_JUSTIFYFULL', 'justifyfull.gif', '20', '20', '两端对齐'),
						Array('Html_NUMBEREDLIST', 'numberedlist.gif', '20', '20', '编号'),
						Array('Html_UNORDERLIST', 'unorderedlist.gif', '20', '20', '项目符号'),
						Array('Html_INDENT', 'indent.gif', '20', '20', '减少缩进'),
						Array('Html_OUTDENT', 'outdent.gif', '20', '20', '增加缩进'),
						Array('Html_SUBSCRIPT', 'subscript.gif', '20', '20', '下标'),
						Array('Html_SUPERSCRIPT', 'superscript.gif', '20', '20', '上标'),
						Array('Html_DATE', 'date.gif', '20', '20', '日期'),
						Array('Html_TIME', 'time.gif', '20', '20', '时间')
				  );
var BOTTOM_TOOLBAR_ICON = Array(
						Array('Html_TITLE', 'title.gif', '28', '20', '标题'),
						Array('Html_FONTNAME', 'font.gif', '28', '20', '字体'),
						Array('Html_FONTSIZE', 'fontsize.gif', '28', '20', '文字大小'),
						Array('Html_TEXTCOLOR', 'textcolor.gif', '20', '20', '文字颜色'),
						Array('Html_BGCOLOR', 'bgcolor.gif', '20', '20', '文字背景'),
						Array('Html_BOLD', 'bold.gif', '20', '20', '粗体'),
						Array('Html_ITALIC', 'italic.gif', '20', '20', '斜体'),
						Array('Html_UNDERLINE', 'underline.gif', '20', '20', '下划线'),
						Array('Html_STRIKE', 'strikethrough.gif', '20', '20', '删除线'),
						Array('Html_REMOVE', 'removeformat.gif', '20', '20', '删除格式'),
						Array('Html_IMAGE', 'image.gif', '20', '20', '图片'),
						Array('Html_FLASH', 'flash.gif', '20', '20', 'Flash'),
						Array('Html_MEDIA', 'media.gif', '20', '20', '视频'),
						Array('Html_LAYER', 'layer.gif', '20', '20', '层'),
						Array('Html_TABLE', 'table.gif', '20', '20', '表格'),
						Array('Html_SPECIALCHAR', 'specialchar.gif', '20', '20', '特殊字符'),
						Array('Html_HR', 'hr.gif', '20', '20', '横线'),
						Array('Html_ICON', 'emoticons.gif', '20', '20', '笑脸'),
						Array('Html_LINK', 'link.gif', '20', '20', '创建超级连接'),
						Array('Html_UNLINK', 'unlink.gif', '20', '20', '删除超级连接'),
						Array('Html_PRINT', 'print.gif', '20', '20', '打印')

				  );
var COLOR_TABLE = Array(
						"#FF0000", "#FFFF00", "#00FF00", "#00FFFF", "#0000FF", "#FF00FF", "#FFFFFF", "#F5F5F5", "#DCDCDC", "#FFFAFA",
						"#D3D3D3", "#C0C0C0", "#A9A9A9", "#808080", "#696969", "#000000", "#2F4F4F", "#708090", "#778899", "#4682B4",
						"#4169E1", "#6495ED", "#B0C4DE", "#7B68EE", "#6A5ACD", "#483D8B", "#191970", "#000080", "#00008B", "#0000CD",
						"#1E90FF", "#00BFFF", "#87CEFA", "#87CEEB", "#ADD8E6", "#B0E0E6", "#F0FFFF", "#E0FFFF", "#AFEEEE", "#00CED1",
						"#5F9EA0", "#48D1CC", "#00FFFF", "#40E0D0", "#20B2AA", "#008B8B", "#008080", "#7FFFD4", "#66CDAA", "#8FBC8F",
						"#3CB371", "#2E8B57", "#006400", "#008000", "#228B22", "#32CD32", "#00FF00", "#7FFF00", "#7CFC00", "#ADFF2F",
						"#98FB98", "#90EE90", "#00FF7F", "#00FA9A", "#556B2F", "#6B8E23", "#808000", "#BDB76B", "#B8860B", "#DAA520",
						"#FFD700", "#F0E68C", "#EEE8AA", "#FFEBCD", "#FFE4B5", "#F5DEB3", "#FFDEAD", "#DEB887", "#D2B48C", "#BC8F8F",
						"#A0522D", "#8B4513", "#D2691E", "#CD853F", "#F4A460", "#8B0000", "#800000", "#A52A2A", "#B22222", "#CD5C5C",
						"#F08080", "#FA8072", "#E9967A", "#FFA07A", "#FF7F50", "#FF6347", "#FF8C00", "#FFA500", "#FF4500", "#DC143C",
						"#FF0000", "#FF1493", "#FF00FF", "#FF69B4", "#FFB6C1", "#FFC0CB", "#DB7093", "#C71585", "#800080", "#8B008B",
						"#9370DB", "#8A2BE2", "#4B0082", "#9400D3", "#9932CC", "#BA55D3", "#DA70D6", "#EE82EE", "#DDA0DD", "#D8BFD8",
						"#E6E6FA", "#F8F8FF", "#F0F8FF", "#F5FFFA", "#F0FFF0", "#FAFAD2", "#FFFACD", "#FFF8DC", "#FFFFE0", "#FFFFF0",
						"#FFFAF0", "#FAF0E6", "#FDF5E6", "#FAEBD7", "#FFE4C4", "#FFDAB9", "#FFEFD5", "#FFF5EE", "#FFF0F5", "#FFE4E1"
					);
function cleanHtml(content)
{
	content = content.replace(/<p>&nbsp;<\/p>/gi,"")
	content = content.replace(/<p><\/p>/gi,"<p>")
	content = content.replace(/<div><\/\1>/gi,"")
	content = content.replace(/<p>/,"<br>")
	content = content.replace(/(<(meta|iframe|frame|span|tbody|layer)[^>]*>|<\/(iframe|frame|meta|span|tbody|layer)>)/gi, "");
	content = content.replace(/<\\?\?xml[^>]*>/gi, "") ;
	content = content.replace(/o:/gi, "");
	content = content.replace(/&nbsp;/gi, " ");
return content;
}
//代码过滤及JS提取
function FilterScript(content)
{
	content = content.replace(/<(\w[^div|>]*) class\s*=\s*([^>|\s]*)([^>]*)/gi,"<$1$3") ;
	content = content.replace(/<(\w[^font|>]*) style\s*=\s*\"[^\"]*\"([^>]*>)/gi,"<$1 $2") ;
	content = content.replace(/<(\w[^>]*) lang\s*=\s*([^>|\s]*)([^>]*)/gi,"<$1$3") ;
	var RegExp = /<(script[^>]*)>(.*)<\/script>/gi;
	content = content.replace(RegExp, "[code]&lt;$1&gt;$2&lt;script&gt;[\/code]");
	RegExp = /<(\w[^>|\s]*)([^>]*)(on(finish|mouse|Exit|error|click|key|load|change|focus|blur))(.[^>]*)/gi;
	content = content.replace(RegExp, "<$1")
	RegExp = /<(\w[^>|\s]*)([^>]*)(&#|window\.|javascript:|js:|about:|file:|Document\.|vbs:|cookie| name| id)(.[^>]*)/gi;
	content = content.replace(RegExp, "<$1")
	return content;
}

function HtmlGetBrowser()
{
	var browser = '';
	var agentInfo = navigator.userAgent.toLowerCase();
	if (agentInfo.indexOf("msie") > -1) {
		var re = new RegExp("msie\\s?([\\d\\.]+)","ig");
		var arr = re.exec(agentInfo);
		if (parseInt(RegExp.$1) >= 5.5) {
			browser = 'IE';
		}
	} else if (agentInfo.indexOf("firefox") > -1) {
		browser = 'FF';
	} else if (agentInfo.indexOf("netscape") > -1) {
		var temp1 = agentInfo.split(' ');
		var temp2 = temp1[temp1.length-1].split('/');
		if (parseInt(temp2[1]) >= 7) {
			browser = 'NS';
		}
	} else if (agentInfo.indexOf("gecko") > -1) {
		browser = 'ML';
	} else if (agentInfo.indexOf("opera") > -1) {
		var temp1 = agentInfo.split(' ');
		var temp2 = temp1[0].split('/');
		if (parseInt(temp2[1]) >= 9) {
			browser = 'OPERA';
		}
	}
	return browser;
}
function HtmlGetFileName(file, separator)
{
	var temp = file.split(separator);
	var len = temp.length;
	var fileName = temp[len-1];
	return fileName;
}
function HtmlGetFileExt(fileName)
{
	var temp = fileName.split(".");
	var len = temp.length;
	var fileExt = temp[len-1].toLowerCase();
	return fileExt;
}
function HtmlCheckImageFileType(file, separator)
{
	if (separator == "/" && file.match(/http:\/\/.{3,}/) == null) {
		alert(MSG_INPUT_URL);
		return false;
	}
	var fileName = HtmlGetFileName(file, separator);
	var fileExt = HtmlGetFileExt(fileName);
	if (fileExt != 'gif' && fileExt != 'jpg' && fileExt != 'png' && fileExt != 'bmp') {
		alert(MSG_INVALID_IMAGE);
		return false;
	}
	return true;
}
function HtmlCheckFlashFileType(file, separator)
{
	if (file.match(/http:\/\/.{3,}/) == null) {
		alert(MSG_INPUT_URL);
		return false;
	}
	var fileName = HtmlGetFileName(file, "/");
	var fileExt = HtmlGetFileExt(fileName);
	if (fileExt != 'swf') {
		alert(MSG_INVALID_FLASH);
		return false;
	}
	return true;
}
function HtmlCheckMediaFileType(file, separator)
{
	if (file.match(/http:\/\/.{3,}/) == null) {
		alert(MSG_INPUT_URL);
		return false;
	}
	var fileName = HtmlGetFileName(file, "/");
	var fileExt = HtmlGetFileExt(fileName);
	if (fileExt != 'mp3' && fileExt != 'wmv' && fileExt != 'asf' && fileExt != 'wma' && fileExt != 'rm') {
		alert(MSG_INVALID_MEDIA);
		return false;
	}
	return true;
}
function HtmlUpload(url)
{
	UPLOAD_DOCUMENT.uploadForm.action = url;
	UPLOAD_DOCUMENT.uploadForm.target = '_self';
	UPLOAD_DOCUMENT.uploadForm.submit();
}
function HtmlHtmlentities(str)
{
	str = str.replace(/</g,'&lt;');
	str = str.replace(/>/g,'&gt;');
	str = str.replace(/&/g,'&amp;');
	str = str.replace(/"/g,'&quot;');
	return str;
}
function HtmlHtmlentitiesDecode(str)
{
	str = str.replace(/&lt;/g,'<');
	str = str.replace(/&gt;/g,'>');
	str = str.replace(/&amp;/g,'&');
	str = str.replace(/&quot;/g,'"');
	return str;
}
function HtmlHtmlToXhtml(str) 
{
	str = str.replace(/<p([^>]*>)/gi, "<div$1");
	str = str.replace(/<\/p>/gi, "</div>");
	str = str.replace(/<br>/gi, "<br />");
	str = str.replace(/(<\w+)([^>]*>)/gi, function ($0,$1,$2) {
						return($1.toLowerCase() + $2);
					}
				);
	str = str.replace(/(<\/\w+>)/gi, function ($0,$1) {
						return($1.toLowerCase());
					}
				);
	str = HtmlTrim(str);
	return str;
}
function HtmlTrim(str)
{
	str = str.replace(/^\s+|\s+$/g, "");
	str = str.replace(/[\r\n]+/g, "\r\n");
	return str;
}
function HtmlGetTop(id)
{
	var top = 0;
	var tmp = '';
	var obj = document.getElementById(id);
	while (eval("obj" + tmp).tagName != "BODY") {
		tmp += ".offsetParent";
		top += eval("obj" + tmp).offsetTop;
	}
	return top;
}
function HtmlGetLeft(id)
{
	var left = 0;
	var tmp = '';
	var obj = document.getElementById(id);
	while (eval("obj" + tmp).tagName != "BODY") {
		tmp += ".offsetParent";
		left += eval("obj" + tmp).offsetLeft;
	}
	return left;
}
function HtmlClearTemp()
{
	document.getElementById('popupData').innerHTML = '';
	document.getElementById('popupName').innerHTML = '';
}
function HtmlGetMenuCommonStyle(top, left)
{
	var str = 'position:absolute;top:'+top+'px;left:'+left+'px;font-size:12px;color:'+MENU_TEXT_COLOR+
			';background-color:'+MENU_BG_COLOR+';border:solid 1px '+MENU_BORDER_COLOR+';z-index:1';
	return str;
}
function HtmlDrawMenu(mode, content)
{
	var top = HtmlGetTop(mode) + 32;
	var left = HtmlGetLeft(mode) + 1;
	var str = '';
	str += '<div style="'+HtmlGetMenuCommonStyle(top, left)+'">';
	str += content;
	str += '</div>';
	document.getElementById('popupData').innerHTML = str;
	document.getElementById('popupName').innerHTML = mode;
}
function HtmlDrawZoom()
{
	var str = '';
	for (i = 0; i < ZOOM_TABLE.length; i++) {
		str += '<div style="padding:2px;width:120px;cursor:pointer;" ' + 
		'onclick="javascript:HtmlExecute(\'Html_ZOOM_END\', \'' + ZOOM_TABLE[i] + '\');" ' + 
		'onmouseover="javascript:this.style.backgroundColor=\''+MENU_SELECTED_COLOR+'\';" ' +
		'onmouseout="javascript:this.style.backgroundColor=\''+MENU_BG_COLOR+'\';">' + 
		ZOOM_TABLE[i] + '</div>';
	}
	HtmlDrawMenu('Html_ZOOM', str);
}
function HtmlDrawTitle()
{

⌨️ 快捷键说明

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