📄 kindeditor.js
字号:
function KindSelect()
{
if (BROWSER == 'IE') {
RANGE.select();
}
}
function KindInsertItem(insertNode)
{
if (BROWSER == 'IE') {
if (SELECTION.type.toLowerCase() == 'control') {
RANGE.item(0).outerHTML = insertNode.outerHTML;
} else {
RANGE.pasteHTML(insertNode.outerHTML);
}
} else {
SELECTION.removeAllRanges();
RANGE.deleteContents();
var startRangeNode = RANGE.startContainer;
var startRangeOffset = 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);
}
SELECTION.addRange(newRange);
}
}
function KindExecuteValue(cmd, value)
{
if (BROWSER == 'IE') {
RANGE.execCommand(cmd, false, value);
} else {
EDITFORM_DOCUMENT.execCommand(cmd, false, value);
}
}
function KindSimpleExecute(cmd)
{
EDITFORM_DOCUMENT.execCommand(cmd, false, null);
KindClearTemp();
EditForm.focus();
}
function KindExecute(mode, value)
{
switch (mode)
{
case 'KIND_SOURCE':
var length = document.getElementById(TOP_TOOLBAR_ICON[0][0]).src.length - 10;
var image = document.getElementById(TOP_TOOLBAR_ICON[0][0]).src.substr(length,10);
if (image == 'source.gif') {
document.getElementById("CodeForm").value = KindHtmlToXhtml(EDITFORM_DOCUMENT.body.innerHTML);
document.getElementById("editIframe").style.display = 'none';
document.getElementById("editTextarea").style.display = 'block';
KindDisableToolbar(true);
} else {
EDITFORM_DOCUMENT.body.innerHTML = KindObjToImage(document.getElementById("CodeForm").value);
document.getElementById("editTextarea").style.display = 'none';
document.getElementById("editIframe").style.display = 'block';
KindDisableToolbar(false);
}
KindClearTemp();
break;
case 'KIND_PRINT':
KindSimpleExecute('print');
break;
case 'KIND_UNDO':
KindSimpleExecute('undo');
break;
case 'KIND_REDO':
KindSimpleExecute('redo');
break;
case 'KIND_CUT':
KindSimpleExecute('cut');
break;
case 'KIND_COPY':
KindSimpleExecute('copy');
break;
case 'KIND_PASTE':
KindSimpleExecute('paste');
break;
case 'KIND_SELECTALL':
KindSimpleExecute('selectall');
break;
case 'KIND_SUBSCRIPT':
KindSimpleExecute('subscript');
break;
case 'KIND_SUPERSCRIPT':
KindSimpleExecute('superscript');
break;
case 'KIND_BOLD':
KindSimpleExecute('bold');
break;
case 'KIND_ITALIC':
KindSimpleExecute('italic');
break;
case 'KIND_UNDERLINE':
KindSimpleExecute('underline');
break;
case 'KIND_STRIKE':
KindSimpleExecute('strikethrough');
break;
case 'KIND_JUSTIFYLEFT':
KindSimpleExecute('justifyleft');
break;
case 'KIND_JUSTIFYCENTER':
KindSimpleExecute('justifycenter');
break;
case 'KIND_JUSTIFYRIGHT':
KindSimpleExecute('justifyright');
break;
case 'KIND_JUSTIFYFULL':
KindSimpleExecute('justifyfull');
break;
case 'KIND_NUMBEREDLIST':
KindSimpleExecute('insertorderedlist');
break;
case 'KIND_UNORDERLIST':
KindSimpleExecute('insertunorderedlist');
break;
case 'KIND_INDENT':
KindSimpleExecute('indent');
break;
case 'KIND_OUTDENT':
KindSimpleExecute('outdent');
break;
case 'KIND_REMOVE':
KindSimpleExecute('removeformat');
break;
case 'KIND_ZOOM':
EditForm.focus();
if (document.getElementById('popupName').innerHTML == mode) {
KindClearTemp();
} else {
KindDrawZoom();
}
break;
case 'KIND_ZOOM_END':
EditForm.focus();
EDITFORM_DOCUMENT.body.style.zoom = value;
KindClearTemp();
break;
case 'KIND_TITLE':
EditForm.focus();
KindSelection();
if (document.getElementById('popupName').innerHTML == mode) {
KindClearTemp();
} else {
KindDrawTitle();
}
break;
case 'KIND_TITLE_END':
EditForm.focus();
value = '<' + value + '>';
KindSelect();
KindExecuteValue('FormatBlock', value);
KindClearTemp();
break;
case 'KIND_FONTNAME':
EditForm.focus();
KindSelection();
if (document.getElementById('popupName').innerHTML == mode) {
KindClearTemp();
} else {
KindDrawFontname();
}
break;
case 'KIND_FONTNAME_END':
EditForm.focus();
KindSelect();
KindExecuteValue('fontname', value);
KindClearTemp();
break;
case 'KIND_FONTSIZE':
EditForm.focus();
KindSelection();
if (document.getElementById('popupName').innerHTML == mode) {
KindClearTemp();
} else {
KindDrawFontsize();
}
break;
case 'KIND_FONTSIZE_END':
EditForm.focus();
value = value.substr(0, 1);
KindSelect();
KindExecuteValue('fontsize', value);
KindClearTemp();
break;
case 'KIND_TEXTCOLOR':
EditForm.focus();
KindSelection();
if (document.getElementById('popupName').innerHTML == mode) {
KindClearTemp();
} else {
KindDrawColorTable('KIND_TEXTCOLOR');
}
break;
case 'KIND_TEXTCOLOR_END':
EditForm.focus();
KindSelect();
KindExecuteValue('ForeColor', value);
KindClearTemp();
break;
case 'KIND_BGCOLOR':
EditForm.focus();
KindSelection();
if (document.getElementById('popupName').innerHTML == mode) {
KindClearTemp();
} else {
KindDrawColorTable('KIND_BGCOLOR');
}
break;
case 'KIND_BGCOLOR_END':
EditForm.focus();
if (BROWSER == 'IE') {
KindSelect();
KindExecuteValue('BackColor', value);
} else {
var startRangeNode = RANGE.startContainer;
if (RANGE.toString() != '' && startRangeNode.nodeType == 3) {
var parent = startRangeNode.parentNode;
var element = document.createElement("font");
element.style.backgroundColor = value;
element.appendChild(RANGE.extractContents());
var startRangeOffset = 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);
SELECTION.addRange(newRange);
}
}
KindClearTemp();
break;
case 'KIND_LINK':
EditForm.focus();
KindSelection();
if (document.getElementById('popupName').innerHTML == mode) {
KindClearTemp();
} else {
KindDrawLink();
}
break;
case 'KIND_UNLINK':
KindSimpleExecute('unlink');
break;
case 'KIND_ICON':
EditForm.focus();
KindSelection();
if (document.getElementById('popupName').innerHTML == mode) {
KindClearTemp();
} else {
KindDrawIcon();
}
break;
case 'KIND_ICON_END':
EditForm.focus();
var element = document.createElement("img");
element.src = value;
element.border = 0;
element.alt = "ICON";
KindSelect();
KindInsertItem(element);
KindClearTemp();
break;
case 'KIND_IMAGE':
EditForm.focus();
KindSelection();
if (document.getElementById('popupName').innerHTML == mode) {
KindClearTemp();
} else {
KindDrawImage();
}
break;
case 'KIND_MEDIA':
EditForm.focus();
KindSelection();
if (document.getElementById('popupName').innerHTML == mode) {
KindClearTemp();
} else {
KindDrawMedia();
}
break;
case 'KIND_FLASH':
EditForm.focus();
KindSelection();
if (document.getElementById('popupName').innerHTML == mode) {
KindClearTemp();
} else {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -