📄 kindeditor.js
字号:
function KindInsertImage(url, width, height, border, title, align, hspace, vspace){var element = document.createElement("img");element.src = url;if (width > 0) {element.style.width = width;}if (height > 0) {element.style.height = height;}if (align != "") {element.align = align;}if (hspace > 0) {element.hspace = hspace;}if (vspace > 0) {element.vspace = vspace;}element.border = border;element.alt = KindHtmlentities(title);KindSelect();KindInsertItem(element);KindDisableMenu();}
function KindDrawLinkEnd(){var url= KE_LINK_DOCUMENT.getElementById('hyperLink').value;var title = KE_LINK_DOCUMENT.getElementById('hyperTitle').value;if (url.match(/http:\/\/.{3,}/) == null) {alert(KE_LANG['INPUT_URL']);return false;}KindEditorForm.focus();KindSelect();KindSelection();if((KE_RANGE_TEXT.length<1)&&(KE_RANGE_HTMLTEXT.length<1)){if(title.length<1){alert("标题不能为空");return false;}var element=document.createElement("a");element.href=url;element.title=title;element.target="_blank";element.innerHTML=title;KindInsertItem(element);}else{KindExecuteValue('CreateLink', url);}KE_LINK_DOCUMENT.getElementById('hyperLink').value="http://";KE_LINK_DOCUMENT.getElementById('hyperTitle').value="";KindDisableMenu();}
function KindSelection(){if (KE_BROWSER == 'IE') {KE_SELECTION = KE_EDITFORM_DOCUMENT.selection;KE_RANGE = KE_SELECTION.createRange();KE_RANGE_TEXT = KE_RANGE.text;KE_RANGE_HTMLTEXT=KE_RANGE.htmlText;} else {KE_SELECTION = document.getElementById("KindEditorForm").contentWindow.getSelection();KE_RANGE = KE_SELECTION.getRangeAt(0);KE_RANGE_TEXT = KE_RANGE.toString();KE_RANGE_HTMLTEXT=KE_RANGE_TEXT;}}
function KindSelect(){if (KE_BROWSER == 'IE') {KE_RANGE.select();}}
function KindInsertItem(insertNode){if (KE_BROWSER == 'IE') {if (KE_SELECTION.type.toLowerCase() == 'control') {KE_RANGE.item(0).outerHTML = insertNode.outerHTML;} else {KE_RANGE.pasteHTML(insertNode.outerHTML);}} else {KE_SELECTION.removeAllRanges();KE_RANGE.deleteContents();var startRangeNode = KE_RANGE.startContainer;var startRangeOffset = KE_RANGE.startOffset;var newRange = document.createRange();if (startRangeNode.nodeType == 3 && insertNode.nodeType == 3) {startRangeNode.insertData(startRangeOffset, insertNode.nodeValue);newRange.setEnd(startRangeNode, startRangeOffset + insertNode.length);newRange.setStart(startRangeNode, startRangeOffset + insertNode.length);}else {var afterNode;if (startRangeNode.nodeType == 3) {var textNode = startRangeNode;startRangeNode = textNode.parentNode;var text = textNode.nodeValue;var textBefore = text.substr(0, startRangeOffset);var textAfter = text.substr(startRangeOffset);var beforeNode = document.createTextNode(textBefore);var afterNode = document.createTextNode(textAfter);startRangeNode.insertBefore(afterNode, textNode);startRangeNode.insertBefore(insertNode, afterNode);startRangeNode.insertBefore(beforeNode, insertNode);startRangeNode.removeChild(textNode);} else {if (startRangeNode.tagName.toLowerCase() == 'html') {startRangeNode = startRangeNode.childNodes[0].nextSibling;afterNode = startRangeNode.childNodes[0];} else {afterNode = startRangeNode.childNodes[startRangeOffset];}startRangeNode.insertBefore(insertNode, afterNode);}newRange.setEnd(afterNode, 0);newRange.setStart(afterNode, 0);}KE_SELECTION.addRange(newRange);}}
function KindExecuteValue(cmd, value){KE_EDITFORM_DOCUMENT.execCommand(cmd, false, value);}
function KindSimpleExecute(cmd){KindEditorForm.focus();KE_EDITFORM_DOCUMENT.execCommand(cmd, false, null);KindDisableMenu();}
function KindExecute(cmd, value){switch (cmd){case 'KE_SOURCE':var length = document.getElementById(KE_TOP_TOOLBAR_ICON[0][0]).src.length - 10;var image = document.getElementById(KE_TOP_TOOLBAR_ICON[0][0]).src.substr(length,10);if (image == 'source.gif') {document.getElementById("KindCodeForm").value = KE_EDITFORM_DOCUMENT.body.innerHTML;document.getElementById("KindEditorIframe").style.display = 'none';document.getElementById("KindEditTextarea").style.display = 'block';KindDisableToolbar(true);} else {KE_EDITFORM_DOCUMENT.body.innerHTML = KindClearScriptTag(document.getElementById("KindCodeForm").value);document.getElementById("KindEditTextarea").style.display = 'none';document.getElementById("KindEditorIframe").style.display = 'block';KindDisableToolbar(false);}KindDisableMenu();break;case 'KE_PRINT':KindSimpleExecute('print');break;case 'KE_UNDO':KindSimpleExecute('undo');break;case 'KE_REDO':KindSimpleExecute('redo');break;case 'KE_SUBSCRIPT':KindSimpleExecute('subscript');break;case 'KE_SUPERSCRIPT':KindSimpleExecute('superscript');break;case 'KE_BOLD':KindSimpleExecute('bold');break;case 'KE_ITALIC':KindSimpleExecute('italic');break;case 'KE_UNDERLINE':KindSimpleExecute('underline');break;case 'KE_STRIKE':KindSimpleExecute('strikethrough');break;case 'KE_JUSTIFYLEFT':KindSimpleExecute('justifyleft');break;case 'KE_JUSTIFYCENTER':KindSimpleExecute('justifycenter');break;case 'KE_JUSTIFYRIGHT':KindSimpleExecute('justifyright');break;case 'KE_JUSTIFYFULL':KindSimpleExecute('justifyfull');break;case 'KE_NUMBEREDLIST':KindSimpleExecute('insertorderedlist');break;case 'KE_UNORDERLIST':KindSimpleExecute('insertunorderedlist');break;case 'KE_REMOVE':KindSimpleExecute('removeformat');break;case 'KE_FONTNAME':KindDisplayMenu(cmd);break;case 'KE_FONTNAME_END':KindEditorForm.focus();KindSelect();KindExecuteValue('fontname', value);KindDisableMenu();break;case 'KE_FONTSIZE':KindDisplayMenu(cmd);break;case 'KE_FONTSIZE_END':KindEditorForm.focus();value = value.substr(0, 1);KindSelect();KindExecuteValue('fontsize', value);KindDisableMenu();break;case 'KE_TEXTCOLOR':KindDisplayMenu(cmd);break;case 'KE_TEXTCOLOR_END':KindEditorForm.focus();KindSelect();KindExecuteValue('ForeColor', value);KindDisableMenu();break;case 'KE_BGCOLOR':KindDisplayMenu(cmd);break;case 'KE_BGCOLOR_END':KindEditorForm.focus();if (KE_BROWSER == 'IE') {KindSelect();KindExecuteValue('BackColor', value);} else {var startRangeNode = KE_RANGE.startContainer;if (startRangeNode.nodeType == 3) {var parent = startRangeNode.parentNode;var element = document.createElement("font");element.style.backgroundColor = value;element.appendChild(KE_RANGE.extractContents());var startRangeOffset = KE_RANGE.startOffset;var newRange = document.createRange();var afterNode;var textNode = startRangeNode;startRangeNode = textNode.parentNode;var text = textNode.nodeValue;var textBefore = text.substr(0, startRangeOffset);var textAfter = text.substr(startRangeOffset);var beforeNode = document.createTextNode(textBefore);var afterNode = document.createTextNode(textAfter);startRangeNode.insertBefore(afterNode, textNode);startRangeNode.insertBefore(element, afterNode);startRangeNode.insertBefore(beforeNode, element);startRangeNode.removeChild(textNode);newRange.setEnd(afterNode, 0);newRange.setStart(afterNode, 0);KE_SELECTION.addRange(newRange);}}KindDisableMenu();break;case 'KE_IMAGE':KindDisplayMenu(cmd);KindImageIframe.focus();KE_IMAGE_DOCUMENT.getElementById(cmd+'submitButton').focus();break;case 'KE_LINK':KindDisplayMenu(cmd);KindLinkIframe.focus();KE_LINK_DOCUMENT.getElementById(cmd+'submitButton').focus();break;case 'KE_UNLINK':KindSimpleExecute('unlink');break;case 'KE_HR':KindDisplayMenu(cmd);break;case 'KE_HR_END':KindEditorForm.focus();var element = document.createElement("hr");element.width = "100%";element.color = value;element.size = 1;KindSelect();KindInsertItem(element);KindDisableMenu();break;case 'KE_DATE':KindEditorForm.focus();KindSelection();var date = new Date();var year = date.getFullYear().toString(10);var month = (date.getMonth() + 1).toString(10);month = month.length < 2 ? '0' + month : month;var day = date.getDate().toString(10);day = day.length < 2 ? '0' + day : day;var value_date = year + '-' + month + '-' + day;var hour = date.getHours().toString(10);hour = hour.length < 2 ? '0' + hour : hour;var minute = date.getMinutes().toString(10);minute = minute.length < 2 ? '0' + minute : minute;var second = date.getSeconds().toString(10);second = second.length < 2 ? '0' + second : second;var value = value_date + ' ' + hour + ':' + minute + ':' + second;var element = document.createElement("span");element.appendChild(document.createTextNode(value));KindInsertItem(element);KindDisableMenu();break;default: break;}}
function KindDisableToolbar(flag){if (flag == true) {document.getElementById(KE_TOP_TOOLBAR_ICON[0][0]).src = KE_SKIN_PATH + 'design.gif';for (i = 0; i < KE_TOOLBAR_ICON.length; i++) {var el = document.getElementById(KE_TOOLBAR_ICON[i][0]);if (KE_TOOLBAR_ICON[i][0] == 'KE_SOURCE') {continue;}el.style.visibility = 'hidden';}} else {document.getElementById(KE_TOP_TOOLBAR_ICON[0][0]).src = KE_SKIN_PATH + 'source.gif';for (i = 0; i < KE_TOOLBAR_ICON.length; i++) {var el = document.getElementById(KE_TOOLBAR_ICON[i][0]);el.style.visibility = 'visible';KE_EDITFORM_DOCUMENT.designMode = 'On';}}}
function KindCreateIcon(icon){var str = '<img id="'+ icon[0] +'" src="' + KE_SKIN_PATH + icon[1] + '" alt="' + icon[2] + '" title="' + icon[2] + '" align="absmiddle" style="border:1px solid ' + KE_TOOLBAR_BG_COLOR +';cursor:pointer;height:20px;';str += '" onclick="javascript:KindExecute(\''+ icon[0] +'\');" '+'onmouseover="javascript:this.style.border=\'1px solid ' + KE_MENU_BORDER_COLOR + '\';" ' +'onmouseout="javascript:this.style.border=\'1px solid ' + KE_TOOLBAR_BG_COLOR + '\';" ';str += '>';return str;}
function KindCreateToolbar(){var htmlData = '<table cellpadding="0" cellspacing="0" border="0" height="26"><tr>';for (i = 0; i < KE_TOP_TOOLBAR_ICON.length; i++) {htmlData += '<td style="padding:2px;">' + KindCreateIcon(KE_TOP_TOOLBAR_ICON[i]) + '</td>';}htmlData += '</tr></table>';return htmlData;}
function KindWriteFullHtml(documentObj, content){var editHtmlData = '';editHtmlData += '<html>\r\n<head>\r\n<title>KindEditor</title>\r\n';editHtmlData += '<link href="'+KE_CSS_PATH+'" rel="stylesheet" type="text/css">\r\n</head>\r\n<body>\r\n';editHtmlData += content;editHtmlData += '\r\n</body>\r\n</html>\r\n';documentObj.open();documentObj.write(editHtmlData);documentObj.close();}
function KindEditor(objName) {this.objName = objName;this.hiddenName = objName;this.editorWidth;this.editorHeight;this.init = function(){if (this.editorWidth) KE_WIDTH = this.editorWidth.toString(10)+'px';if (this.editorHeight) KE_HEIGHT = this.editorHeight.toString(10)+'px';KE_OBJ_NAME = this.objName;KE_BROWSER = KindGetBrowser();KE_TOOLBAR_ICON = Array();for (var i = 0; i < KE_TOP_TOOLBAR_ICON.length; i++) {KE_TOOLBAR_ICON.push(KE_TOP_TOOLBAR_ICON[i]);}};this.show = function(){this.init();var widthStyle = 'width:' + KE_WIDTH + ';';var heightStyle = 'height:' + KE_HEIGHT + ';';var iframeWidthStyle = 'width:' + (this.editorWidth - 2).toString(10) + 'px;';var iframeHeightStyle= 'height:' + (this.editorHeight-3).toString(10) + 'px;';if (KE_BROWSER == '') {var htmlData = '<div id="KindEditTextarea" style="' + widthStyle + heightStyle + '">' +'<textarea name="KindCodeForm" id="KindCodeForm" style="' + widthStyle + heightStyle + 'padding:0;margin:0;border:1px solid '+ KE_FORM_BORDER_COLOR + ';font-size:12px;line-height:16px;font-family:'+KE_FONT_FAMILY+';background-color:'+ KE_FORM_BG_COLOR +';">' + document.getElementsByName(this.hiddenName)[0].value + '</textarea></div>';document.open();document.write(htmlData);document.close();return;}var htmlData = '<div style="font-family:'+KE_FONT_FAMILY+';">';htmlData += '<div style="'+widthStyle+';border:1px solid ' + KE_TOOLBAR_BORDER_COLOR + ';background-color:'+ KE_TOOLBAR_BG_COLOR +'">';htmlData += KindCreateToolbar();htmlData += '</div><div id="KindEditorIframe" style="' + widthStyle + heightStyle + 'border:1px solid '+ KE_FORM_BORDER_COLOR +';border-top:0;">' +'<iframe name="KindEditorForm" id="KindEditorForm" frameborder="0" style="' + iframeWidthStyle + iframeHeightStyle + 'padding:0;margin:0;border:0;"></iframe></div>';htmlData += '<div id="KindEditTextarea" style="' + widthStyle + heightStyle + 'border:1px solid '+ KE_FORM_BORDER_COLOR +';background-color:'+ KE_FORM_BG_COLOR +';border-top:0;display:none;">' +'<textarea name="KindCodeForm" id="KindCodeForm" style="' + iframeWidthStyle + iframeHeightStyle + 'padding:0;margin:0;border:0;font-size:12px;line-height:16px;font-family:'+KE_FONT_FAMILY+';background-color:'+KE_FORM_BG_COLOR +';" onclick="javascirit:parent.KindDisableMenu();"></textarea></div>';htmlData += '</div>';for (var i = 0; i < KE_POPUP_MENU_TABLE.length; i++) {if (KE_POPUP_MENU_TABLE[i] == 'KE_IMAGE') {htmlData += '<span id="InsertIframe">';}htmlData += KindPopupMenu(KE_POPUP_MENU_TABLE[i]);if (KE_POPUP_MENU_TABLE[i] == 'KE_REAL') {htmlData += '</span>';}}document.open();document.write(htmlData);document.close();if (KE_BROWSER == 'IE') {KE_EDITFORM_DOCUMENT = document.frames("KindEditorForm").document;} else {KE_EDITFORM_DOCUMENT = document.getElementById('KindEditorForm').contentDocument;}KE_EDITFORM_DOCUMENT.designMode = 'On';KindWriteFullHtml(KE_EDITFORM_DOCUMENT, document.getElementsByName(eval(KE_OBJ_NAME).hiddenName)[0].value);var el = KE_EDITFORM_DOCUMENT.body;if (el.addEventListener){el.addEventListener('click', KindDisableMenu, false); } else if (el.attachEvent){el.attachEvent('onclick', KindDisableMenu);}};this.data = function(){var htmlResult;if (KE_BROWSER == '') {htmlResult = document.getElementById("KindCodeForm").value;} else {var length = document.getElementById(KE_TOP_TOOLBAR_ICON[0][0]).src.length - 10;var image = document.getElementById(KE_TOP_TOOLBAR_ICON[0][0]).src.substr(length,10);if (image == 'source.gif') {htmlResult = KE_EDITFORM_DOCUMENT.body.innerHTML;} else {htmlResult = document.getElementById("KindCodeForm").value;}}KindDisableMenu();htmlResult = KindClearScriptTag(htmlResult);document.getElementsByName(this.hiddenName)[0].value = htmlResult;return htmlResult;}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -