?? htmleditor.js
字號(hào):
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 = "請(qǐng)輸入正確的URL地址。";
var MSG_INVALID_IMAGE = "只能選擇GIF,JPG,PNG,BMP格式的圖片,請(qǐng)重新選擇。";
var MSG_INVALID_FLASH = "只能選擇SWF格式的圖片,請(qǐng)重新選擇。";
var MSG_INVALID_MEDIA = "只能選擇MP3,WMV,ASF,WMA,RM格式的圖片,請(qǐng)重新選擇。";
var MSG_SELECT_TARGET = "請(qǐng)選擇目標(biāo)文本。";
var MSG_INVALID_WIDTH = "寬度不是數(shù)字,請(qǐng)重新輸入。";
var MSG_INVALID_HEIGHT = "高度不是數(shù)字,請(qǐng)重新輸入。";
var MSG_INVALID_BORDER = "邊框不是數(shù)字,請(qǐng)重新輸入。";
var STR_WIDTH = "寬";
var STR_HEIGHT = "高";
var STR_BORDER = "邊";
var STR_BUTTON_CONFIRM = "確定";
var STR_BUTTON_CANCEL = "取消";
var STR_BUTTON_PREVIEW = "預(yù)覽";
var STR_BUTTON_LISTENING = "試聽";
var STR_IMAGE_LOCAL = "本地";
var STR_IMAGE_REMOTE = "遠(yuǎn)程";
var STR_LINK_BLANK = "新窗口";
var STR_LINK_NOBLANK = "當(dāng)前窗口";
var STR_LINK_TARGET = "目標(biāo)";
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', '標(biāo)題 1'),
Array('H2', '標(biāo)題 2'),
Array('H3', '標(biāo)題 3'),
Array('H4', '標(biāo)題 4'),
Array('H5', '標(biāo)題 5'),
Array('H6', '標(biāo)題 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', '視圖轉(zhuǎn)換'),
Array('Html_PREVIEW', 'preview.gif', '20', '20', '預(yù)覽'),
Array('Html_ZOOM', 'zoom.gif', '20', '20', '顯示比例'),
Array('Html_UNDO', 'undo.gif', '20', '20', '回退'),
Array('Html_REDO', 'redo.gif', '20', '20', '前進(jìn)'),
Array('Html_CUT', 'cut.gif', '20', '20', '剪切'),
Array('Html_COPY', 'copy.gif', '20', '20', '復(fù)制'),
Array('Html_PASTE', 'paste.gif', '20', '20', '粘貼'),
Array('Html_SELECTALL', 'selectall.gif', '20', '20', '全選'),
Array('Html_JUSTIFYLEFT', 'justifyleft.gif', '20', '20', '左對(duì)齊'),
Array('Html_JUSTIFYCENTER', 'justifycenter.gif', '20', '20', '居中'),
Array('Html_JUSTIFYRIGHT', 'justifyright.gif', '20', '20', '右對(duì)齊'),
Array('Html_JUSTIFYFULL', 'justifyfull.gif', '20', '20', '兩端對(duì)齊'),
Array('Html_NUMBEREDLIST', 'numberedlist.gif', '20', '20', '編號(hào)'),
Array('Html_UNORDERLIST', 'unorderedlist.gif', '20', '20', '項(xiàng)目符號(hào)'),
Array('Html_INDENT', 'indent.gif', '20', '20', '減少縮進(jìn)'),
Array('Html_OUTDENT', 'outdent.gif', '20', '20', '增加縮進(jìn)'),
Array('Html_SUBSCRIPT', 'subscript.gif', '20', '20', '下標(biāo)'),
Array('Html_SUPERSCRIPT', 'superscript.gif', '20', '20', '上標(biāo)'),
Array('Html_DATE', 'date.gif', '20', '20', '日期'),
Array('Html_TIME', 'time.gif', '20', '20', '時(shí)間')
);
var BOTTOM_TOOLBAR_ICON = Array(
Array('Html_TITLE', 'title.gif', '28', '20', '標(biāo)題'),
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', '創(chuàng)建超級(jí)連接'),
Array('Html_UNLINK', 'unlink.gif', '20', '20', '刪除超級(jí)連接'),
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> <\/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(/ /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]<$1>$2<script>[\/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,'<');
str = str.replace(/>/g,'>');
str = str.replace(/&/g,'&');
str = str.replace(/"/g,'"');
return str;
}
function HtmlHtmlentitiesDecode(str)
{
str = str.replace(/</g,'<');
str = str.replace(/>/g,'>');
str = str.replace(/&/g,'&');
str = str.replace(/"/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");
}
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()
{
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -