📄 kindeditor.js
字号:
str = KindConvertAttributeChild(str, 'href', '[^\"\\s>]+');
str = KindConvertAttributeChild(str, 'color', '[^\"\\s>]+');
str = KindConvertAttributeChild(str, 'alt', '[^\"\\s>]+');
str = KindConvertAttributeChild(str, 'title', '[^\"\\s>]+');
str = KindConvertAttributeChild(str, 'type', '[^\"\\s>]+');
str = KindConvertAttributeChild(str, 'id', '\\w+');
str = KindConvertAttributeChild(str, 'name', '\\w+');
str = KindConvertAttributeChild(str, 'dir', '\\w+');
str = KindConvertAttributeChild(str, 'target', '\\w+');
str = KindConvertAttributeChild(str, 'align', '\\w+');
str = KindConvertAttributeChild(str, 'width', '[\\w%]+');
str = KindConvertAttributeChild(str, 'height', '[\\w%]+');
str = KindConvertAttributeChild(str, 'border', '[\\w%]+');
str = KindConvertAttributeChild(str, 'size', '[\\w%]+');
str = KindConvertAttributeChild(str, 'cellspacing', '\\d+');
str = KindConvertAttributeChild(str, 'cellpadding', '\\d+');
return str;
}
function KindConvertAttributeChild(str, attName, regStr)
{
var re = new RegExp("("+attName+"=)[\"']?("+regStr+")[\"']?","ig");
str = str.replace(re, function ($0,$1,$2) {
if (BROWSER == 'IE' && attName.match(/style/i) != null ) {
return($1.toLowerCase() + "\"" + $2.toLowerCase() + "\"");
} else {
return($1.toLowerCase() + "\"" + $2 + "\"");
}
}
);
return str;
}
function KindTrim(str)
{
str = str.replace(/^\s+|\s+$/g, "");
str = str.replace(/[\r\n]+/g, "\r\n");
return str;
}
function KindGetTop(id)
{
var top = 28;
var tmp = '';
var obj = document.getElementById(id);
while (eval("obj" + tmp).tagName != "BODY") {
tmp += ".offsetParent";
top += eval("obj" + tmp).offsetTop;
}
return top;
}
function KindGetLeft(id)
{
var left = 2;
var tmp = '';
var obj = document.getElementById(id);
while (eval("obj" + tmp).tagName != "BODY") {
tmp += ".offsetParent";
left += eval("obj" + tmp).offsetLeft;
}
return left;
}
function KindClearTemp()
{
document.getElementById('popupData').innerHTML = '';
document.getElementById('popupName').innerHTML = '';
}
function KindGetMenuCommonStyle(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 KindDrawMenu(mode, content)
{
var top = KindGetTop(mode);
var left = KindGetLeft(mode);
var str = '';
str += '<div style="'+KindGetMenuCommonStyle(top, left)+'">';
str += content;
str += '</div>';
document.getElementById('popupData').innerHTML = str;
document.getElementById('popupName').innerHTML = mode;
}
function KindDrawZoom()
{
var str = '';
for (i = 0; i < ZOOM_TABLE.length; i++) {
str += '<div style="padding:2px;width:120px;cursor:pointer;" ' +
'onclick="javascript:KindExecute(\'KIND_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>';
}
KindDrawMenu('KIND_ZOOM', str);
}
function KindDrawTitle()
{
var str = '';
for (i = 0; i < TITLE_TABLE.length; i++) {
str += '<div style="width:140px;cursor:pointer;" ' +
'onclick="javascript:KindExecute(\'KIND_TITLE_END\', \'' + TITLE_TABLE[i][0] + '\');" ' +
'onmouseover="javascript:this.style.backgroundColor=\''+MENU_SELECTED_COLOR+'\';" ' +
'onmouseout="javascript:this.style.backgroundColor=\''+MENU_BG_COLOR+'\';"><' + TITLE_TABLE[i][0] + ' style="margin:2px;">' +
TITLE_TABLE[i][1] + '</' + TITLE_TABLE[i][0] + '></div>';
}
KindDrawMenu('KIND_TITLE', str);
}
function KindDrawFontname()
{
var str = '';
for (i = 0; i < FONT_NAME.length; i++) {
str += '<div style="font-family:' + FONT_NAME[i][0] +
';padding:2px;width:160px;cursor:pointer;" ' +
'onclick="javascript:KindExecute(\'KIND_FONTNAME_END\', \'' + FONT_NAME[i][0] + '\');" ' +
'onmouseover="javascript:this.style.backgroundColor=\''+MENU_SELECTED_COLOR+'\';" ' +
'onmouseout="javascript:this.style.backgroundColor=\''+MENU_BG_COLOR+'\';">' +
FONT_NAME[i][1] + '</div>';
}
KindDrawMenu('KIND_FONTNAME', str);
}
function KindDrawFontsize()
{
var str = '';
for (i = 0; i < FONT_SIZE.length; i++) {
str += '<div style="font-size:' + FONT_SIZE[i][1] +
';padding:2px;width:120px;cursor:pointer;" ' +
'onclick="javascript:KindExecute(\'KIND_FONTSIZE_END\', \'' + FONT_SIZE[i][0] + '\');" ' +
'onmouseover="javascript:this.style.backgroundColor=\''+MENU_SELECTED_COLOR+'\';" ' +
'onmouseout="javascript:this.style.backgroundColor=\''+MENU_BG_COLOR+'\';">' +
FONT_SIZE[i][1] + '</div>';
}
KindDrawMenu('KIND_FONTSIZE', str);
}
function KindCreateColorTable(cmdName, eventStr)
{
var str = '';
str += '<table cellpadding="0" cellspacing="2" border="0">';
for (i = 0; i < COLOR_TABLE.length; i++) {
if (i == 0 || (i >= 10 && i%10 == 0)) {
str += '<tr>';
}
str += '<td style="width:12px;height:12px;border:1px solid #AAAAAA;font-size:1px;cursor:pointer;background-color:' +
COLOR_TABLE[i] + ';" onmouseover="javascript:this.style.borderColor=\'#000000\';' + ((eventStr) ? eventStr : '') + '" ' +
'onmouseout="javascript:this.style.borderColor=\'#AAAAAA\';" ' +
'onclick="javascript:KindExecute(\''+cmdName+'_END\', \'' + COLOR_TABLE[i] + '\');"> </td>';
if (i >= 9 && i%(i-1) == 0) {
str += '</tr>';
}
}
str += '</table>';
return str;
}
function KindDrawColorTable(cmdName)
{
var top = KindGetTop(cmdName);
var left = KindGetLeft(cmdName);
var str = '';
str += '<div style="width:160px;padding:2px;'+KindGetMenuCommonStyle(top, left)+'">';
str += KindCreateColorTable(cmdName);
str += '</div>';
document.getElementById('popupData').innerHTML = str;
document.getElementById('popupName').innerHTML = cmdName;
}
function KindDrawHr()
{
var cmdName = 'KIND_HR';
var top = KindGetTop(cmdName);
var left = KindGetLeft(cmdName);
var str = '';
str += '<div style="width:160px;'+KindGetMenuCommonStyle(top, left)+'">';
str += '<div id="hrPreview" style="margin:10px 2px 10px 2px;height:1px;border:0;font-size:0;background-color:#FFFFFF;"></div>';
str += KindCreateColorTable(cmdName, 'document.getElementById(\'hrPreview\').style.backgroundColor = this.style.backgroundColor;');
str += '</div>';
document.getElementById('popupData').innerHTML = str;
document.getElementById('popupName').innerHTML = cmdName;
}
function KindDrawLayer()
{
var cmdName = 'KIND_LAYER';
var top = KindGetTop(cmdName);
var left = KindGetLeft(cmdName);
var str = '';
str += '<div style="width:160px;'+KindGetMenuCommonStyle(top, left)+'">';
str += '<div id="divPreview" style="margin:5px 2px 5px 2px;height:20px;border:1px solid #AAAAAA;font-size:1px;background-color:#FFFFFF;"></div>';
str += KindCreateColorTable(cmdName, 'document.getElementById(\'divPreview\').style.backgroundColor = this.style.backgroundColor;');
str += '</div>';
document.getElementById('popupData').innerHTML = str;
document.getElementById('popupName').innerHTML = cmdName;
}
function KindDrawLink()
{
var top = KindGetTop('KIND_LINK');
var left = KindGetLeft('KIND_LINK') - 220;
var str = '';
str += '<table cellpadding="0" cellspacing="0" style="width:250px;'+KindGetMenuCommonStyle(top, left)+'">' +
'<tr><td style="width:50px;padding:5px;">URL</td>' +
'<td style="width:200px;padding-top:5px;padding-bottom:5px;"><input type="text" id="hyperLink" value="http://" style="width:190px;border:1px solid #555555;background-color:#FFFFFF;"></td>' +
'<tr><td style="padding:5px;">'+STR_LINK_TARGET+'</td>' +
'<td style="padding-bottom:5px;"><select id="hyperLinkTarget"><option value="_blank" selected="selected">'+STR_LINK_BLANK+'</option><option value="">'+STR_LINK_NOBLANK+'</option></select></td>' +
'<tr><td colspan="2" style="padding-bottom:5px;" align="center"><input type="button" name="button" value="'+STR_BUTTON_CONFIRM+'" ' +
'onclick="javascript:KindDrawLinkEnd();"' +
'style="border:1px solid #555555;background-color:'+BUTTON_COLOR+';"> <input type="button" name="button" value="'+STR_BUTTON_CANCEL+'" onclick="javascript:KindClearTemp();" style="border:1px solid #555555;background-color:'+BUTTON_COLOR+';"></td></tr>';
str += '</table>';
document.getElementById('popupData').innerHTML = str;
document.getElementById('popupName').innerHTML = 'KIND_LINK';
}
function KindDrawLinkEnd()
{
var range;
var url = document.getElementById('hyperLink').value;
var target = document.getElementById('hyperLinkTarget').value;
if (url.match(/http:\/\/.{3,}/) == null) {
alert(MSG_INPUT_URL);
return false;
}
KindSelect();
var element;
if (BROWSER == 'IE') {
if (SELECTION.type.toLowerCase() == 'control') {
var el = document.createElement("a");
el.href = url;
if (target) {
el.target = target;
}
RANGE.item(0).applyElement(el);
} else if (SELECTION.type.toLowerCase() == 'text') {
KindExecuteValue('CreateLink', url);
element = RANGE.parentElement();
if (target) {
element.target = target;
}
}
} else {
KindExecuteValue('CreateLink', url);
element = RANGE.startContainer.previousSibling;
element.target = target;
if (target) {
element.target = target;
}
}
KindClearTemp();
}
function KindDrawIcon()
{
var top = KindGetTop('KIND_ICON');
var left = KindGetLeft('KIND_ICON');
var str = '';
var iconNum = 36;
str += '<table cellpadding="0" cellspacing="2" style="'+KindGetMenuCommonStyle(top, left)+'">';
for (i = 0; i < iconNum; i++) {
if (i == 0 || (i >= 6 && i%6 == 0)) {
str += '<tr>';
}
var num;
if ((i+1).toString(10).length < 2) {
num = '0' + (i+1);
} else {
num = (i+1).toString(10);
}
var iconUrl = ICON_PATH + 'etc_' + num + '.gif';
str += '<td style="padding:2px;border:0;cursor:pointer;" ' +
'onclick="javascript:KindExecute(\'KIND_ICON_END\', \'' + iconUrl + '\');">' +
'<img src="' + iconUrl + '" style="border:1px solid #EEEEEE;" onmouseover="javascript:this.style.borderColor=\'#AAAAAA\';" ' +
'onmouseout="javascript:this.style.borderColor=\'#EEEEEE\';">' + '</td>';
if (i >= 5 && i%(i-1) == 0) {
str += '</tr>';
}
}
str += '</table>';
document.getElementById('popupData').innerHTML = str;
document.getElementById('popupName').innerHTML = 'KIND_ICON';
}
function KindDrawSpecialchar()
{
var top = KindGetTop('KIND_SPECIALCHAR');
var left = KindGetLeft('KIND_SPECIALCHAR');
var str = '';
str += '<table cellpadding="0" cellspacing="2" style="'+KindGetMenuCommonStyle(top, left)+'">';
for (i = 0; i < SPECIAL_CHARACTER.length; i++) {
if (i == 0 || (i >= 10 && i%10 == 0)) {
str += '<tr>';
}
str += '<td style="padding:2px;border:1px solid #AAAAAA;cursor:pointer;" ' +
'onclick="javascript:KindExecute(\'KIND_SPECIALCHAR_END\', \'' + SPECIAL_CHARACTER[i] + '\');" ' +
'onmouseover="javascript:this.style.borderColor=\'#000000\';" ' +
'onmouseout="javascript:this.style.borderColor=\'#AAAAAA\';">' + SPECIAL_CHARACTER[i] + '</td>';
if (i >= 9 && i%(i-1) == 0) {
str += '</tr>';
}
}
str += '</table>';
document.getElementById('popupData').innerHTML = str;
document.getElementById('popupName').innerHTML = 'KIND_SPECIALCHAR';
}
function KindDrawTableSelected(i, j)
{
var text = i.toString(10) + ' by ' + j.toString(10) + ' Table';
document.getElementById('tableLocation').innerHTML = text;
var num = 10;
for (m = 1; m <= num; m++) {
for (n = 1; n <= num; n++) {
var obj = document.getElementById('tableTd' + m.toString(10) + '_' + n.toString(10) + '');
if (m <= i && n <= j) {
obj.style.backgroundColor = MENU_SELECTED_COLOR;
} else {
obj.style.backgroundColor = '#FFFFFF';
}
}
}
}
function KindDrawTable()
{
var top = KindGetTop('KIND_TABLE');
var left = KindGetLeft('KIND_TABLE');
var str = '';
var num = 10;
str += '<table cellpadding="0" cellspacing="0" style="'+KindGetMenuCommonStyle(top, left)+'">';
for (i = 1; i <= num; i++) {
str += '<tr>';
for (j = 1; j <= num; j++) {
var value = i.toString(10) + ',' + j.toString(10);
str += '<td id="tableTd' + i.toString(10) + '_' + j.toString(10) +
'" style="width:15px;height:15px;background-color:#FFFFFF;border:1px solid #DDDDDD;cursor:pointer;" ' +
'onclick="javascript:KindExecute(\'KIND_TABLE_END\', \'' + value + '\');" ' +
'onmouseover="javascript:KindDrawTableSelected(\''+i.toString(10)+'\', \''+j.toString(10)+'\');" ' +
'onmouseout="javascript:;"> </td>';
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -