📄 editor.js
字号:
case 'PASTE':
SimpleExecute('paste');
break;
case 'SELECTALL':
SimpleExecute('selectall');
break;
case 'SUBSCRIPT':
SimpleExecute('subscript');
break;
case 'SUPERSCRIPT':
SimpleExecute('superscript');
break;
case 'BOLD':
SimpleExecute('bold');
break;
case 'ITALIC':
SimpleExecute('italic');
break;
case 'UNDERLINE':
SimpleExecute('underline');
break;
case 'JUSTIFYLEFT':
SimpleExecute('justifyleft');
break;
case 'JUSTIFYCENTER':
SimpleExecute('justifycenter');
break;
case 'JUSTIFYRIGHT':
SimpleExecute('justifyright');
break;
case 'JUSTIFYFULL':
SimpleExecute('justifyfull');
break;
case 'NUMBEREDLIST':
SimpleExecute('insertorderedlist');
break;
case 'UNORDERLIST':
SimpleExecute('insertunorderedlist');
break;
case 'INDENT':
SimpleExecute('indent');
break;
case 'OUTDENT':
SimpleExecute('outdent');
break;
case 'REMOVE':
SimpleExecute('removeformat');
break;
case 'FONTNAME_END':
WxEditorForm.focus();
//DoSelect();
ExecuteValue('fontname',value);
//DisableMenu();
break;
case 'FONTSIZE_END':
WxEditorForm.focus();
value = value.substr(0,1);
//DoSelect();
ExecuteValue('fontsize',value);
//DisableMenu();
break;
case 'TEXTCOLOR':
DisplayMenu(cmd);
break;
case 'TEXTCOLOR_END':
WxEditorForm.focus();
DoSelect();
ExecuteValue('ForeColor',value);
DisableMenu();
break;
case 'BGCOLOR':
DisplayMenu(cmd);
break;
case 'BGCOLOR_END':
WxEditorForm.focus();
if (BROWSER == 'IE') {
DoSelect();
ExecuteValue('BackColor',value);
}else{
var startRangeNode = RANGE.startContainer;
if (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);
}
}
DisableMenu();
break;
case 'ICON':
showDialog("emot.htm");
break;
case 'ICON_END':
WxEditorForm.focus();
var element = document.createElement("img");
element.src = value;
element.border = 0;
element.alt = "";
DoSelect();
InsertItem(element);
DisableMenu();
break;
case 'IMAGE':
showDialog("image.htm");
break;
case 'FLASH':
showDialog("media.htm");
break;
case 'MEDIA':
showDialog("media.htm");
break;
case 'REAL':
showDialog("media.htm");
break;
case 'LINK':
DisplayMenu(cmd);
LinkIframe.focus();
LINK_DOCUMENT.getElementById(cmd+'submitButton').focus();
break;
case 'UNLINK':
SimpleExecute('unlink');
break;
case 'SPECIALCHAR':
showDialog("symbol.htm");
break;
case 'DATE':
WxEditorForm.focus();
DoSelection();
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 = year + '-' + month + '-' + day;
var element = document.createElement("span");
element.appendChild(document.createTextNode(value));
InsertItem(element);
DisableMenu();
break;
case 'TIME':
WxEditorForm.focus();
DoSelection();
var date = new Date();
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 = hour + ':' + minute + ':' + second;
var element = document.createElement("span");
element.appendChild(document.createTextNode(value));
InsertItem(element);
DisableMenu();
break;
default:
break;
}
}
}
}
function DisableToolbar()
{
if (EDITMODE=="CODE") {
document.getElementById("FontName").disabled="disabled";
document.getElementById("FontSize").disabled="disabled";
}else{
document.getElementById("FontName").disabled="";
document.getElementById("FontSize").disabled="";
EDITFORM_DOCUMENT.designMode = 'On';
}
}
function showIcon(id){
var str;
if (id==99) {
str="<img src='"+imgPath+"tb.space.gif' align='absmiddle'>";
}else{
if (id==98) {
str="</div>";
}else{
if (id==97) {
str="<div style='height:26px;background-image:url("+imgPath+"tb.bg.gif);'><img src='"+imgPath+"tb.start.gif' align='absmiddle' />";
}else{
if (id==96) {
str="<select class='tben' id=\"FontName\" onchange=\"javascript:DoExecute('FONTNAME_END',this[this.selectedIndex].value);\">";
for (var k = 0; k <FontName.length; k++) {
str+="<option value='"+FontName[k][0]+"'>"+FontName[k][1]+"</option>"
}
str+="</select> <select class='tben' id=\"FontSize\" onchange=\"javascript:DoExecute('FONTSIZE_END',this[this.selectedIndex].value);\"><option selected=\"selected\">字号</option><option value='10'>10px</option><option value='11'>11px</option><option value='12'>12px</option><option value='13'>13px</option><option value='14'>14px</option><option value='15'>15px</option><option value='16'>16px</option><option value='18'>18px</option><option value='20'>20px</option><option value='22'>22px</option><option value='24'>24px</option><option value='30'>30px</option><option value='36'>36px</option></select>";
}else{
str='<img id="'+ToolbarIcon[id][0]+'" src="'+imgPath+ToolbarIcon[id][1]+'" alt="'+ToolbarIcon[id][2]+'" title="'+ToolbarIcon[id][2]+'" align="absmiddle" style="border:0;cursor:pointer;height:20px;top:2px;padding:1px;';
str+='" onclick="javascript:DoExecute(\''+ ToolbarIcon[id][0] +'\');" '+'onmouseover="javascript:this.style.border=\'1px solid #335EA8\';this.style.padding=\'0\';" onmouseout="javascript:this.style.border=\'0\';this.style.border=\'0\';this.style.padding=\'1px\';" ';
str+='>';
}
}
}
}
return str;
}
function DisplayToolbar(){
var htmlData = '';
var IconIDs;
if (EditorType=='full') {
IconIDs="97|96|0|1|99|2|3|4|99|5|6|99|9|10|99|14|15|99|7|98|97|18|19|20|99|16|17|99|21|22|23|24|99|25|26|27|28|99|29|30|99|11|12|13|99|8|98";
}else{
IconIDs="97|96|16|17|99|18|19|20|99|2|3|4|99|0|1|99|9|10|99|8|7|99|11|12|98";
}
var Arrs = IconIDs.split("|");
for (var j = 0; j <Arrs.length; j++) {
htmlData+=showIcon(Arrs[j]);
}
return htmlData;
}
function FullHtml(documentObj,content){
var editHtmlData = '';
editHtmlData += '<html>\r\n<head>\r\n';
editHtmlData += '<link href="Inc/Editor.css" 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 HtmlToXhtml(str){
str = str.replace(/<br.*?>/gi,"<br />");
str = str.replace(/(<hr\s+[^>]*[^\/])(>)/gi,"$1 />");
str = str.replace(/(<img\s+[^>]*[^\/])(>)/gi,"$1 />");
str = str.replace(/(<\w+)(.*?>)/gi,function ($0,$1,$2) {return($1.toLowerCase()+$2);});
str = str.replace(/(<\/\w+>)/gi,function ($0,$1) {return($1.toLowerCase());});
return str;
}
function WxEditor(objName){
this.objName = objName;
this.hiddenName = objName;
this.editorType;
this.editorwidth;
this.editorheight;
this.imgPath;
this.init = function()
{
if (this.editorType) EditorType = this.editorType.toLowerCase();
if (this.editorwidth) width = this.editorwidth;
if (this.editorheight) height = this.editorheight;
if (this.imgPath) imgPath = this.imgPath;
OBJ_NAME = this.objName;
BROWSER = GetBrowser();
if (BROWSER=="IE") {
IconTop=2;}
else{
IconTop=0;}
document.writeln("<style type=\"text/css\">.tben{font:9pt Tahoma;height:20px;position:relative;top:"+IconTop+"px;}");
document.writeln(".TabOff{float:left;border-left: solid 1px #FFFFFF;border-right: solid 1px #999999;border-top: solid 1px #FFFFFF;border-bottom: solid 1px #999999;background-color: #EEEEEE;text-align:center;width:80px;margin-right:5px;cursor:pointer;}");
document.writeln(".TabOn{float:left;border-left: solid 1px #999999;border-right: solid 1px #FFFFFF;border-top: solid 1px #999999;border-bottom: solid 1px #FFFFFF;background-color: #ddd;text-align:center;width:80px;margin-right:5px;cursor:pointer;}");
document.writeln("</style>");
}
this.show = function()
{
this.init();
var widthStyle = 'width:' + width + ';';
var widthArr = width.match(/(\d+)([px%]{1,2})/);
var iframewidthStyle = 'width:' + (parseInt(widthArr[1]) - 2).toString(10) + widthArr[2] + ';';
var heightStyle = 'height:' + height + ';';
var heightArr = height.match(/(\d+)([px%]{1,2})/);
var iframeheightStyle = 'height:' + (parseInt(heightArr[1]) - 3).toString(10) + heightArr[2] + ';';
if (BROWSER == '') {
var htmlData = '<div id="Edittextarea" style="' + widthStyle + heightStyle + '">' +
'<textarea name="CodeForm" id="CodeForm" style="' + widthStyle + heightStyle +
'padding:0;margin:0;border:1px solid #ddd;font-size:12px;line-height:16px;font-family:Tahoma;background-color:#fff;">' + document.getElementsByName(this.hiddenName)[0].value + '</textarea></div>';
document.open();
document.write(htmlData);
document.close();
return;
}
var htmlData = '<div style="font-family:Tahoma;border:1px solid #ddd;">';
htmlData += '<div style="'+widthStyle+';border:1px solid #ddd;">';
htmlData += DisplayToolbar();
htmlData += '</div><div id="WxEditorIframe" style="' + widthStyle + heightStyle +
'border:1px solid #ddd;border-top:0;">' +
'<iframe name="WxEditorForm" id="WxEditorForm" frameborder="0" style="' + iframewidthStyle + iframeheightStyle +
'padding:0;margin:0;border:0;"></iframe></div>';
if (EditorType == 'full') {
htmlData += '<div style="'+widthStyle+';margin-top:1px;border:1px solid #ddd;clear:both;"><div id="DesignMode" class="TabOn" onclick="javascript:DoExecute(\'SOURCE\',\'DESIGN\');"><img src="'+imgPath+'Design.gif" align="absmiddle" /> Design</div><div id="CODEMode" class="TabOff" onclick="javascript:DoExecute(\'SOURCE\',\'CODE\');"><img src="'+imgPath+'CODE.gif" align="absmiddle" /> HTML</div></div>';
}
htmlData += '</div>';
for (var i = 0; i < PopupMenuList.length; i++) {
htmlData += PopupMenu(PopupMenuList[i]);
}
document.open();
document.write(htmlData);
document.close();
if (BROWSER == 'IE') {
EDITFORM_DOCUMENT = document.frames("WxEditorForm").document;
}else{
EDITFORM_DOCUMENT = document.getElementById('WxEditorForm').contentDocument;
}
DrawIframe('LINK');
EDITFORM_DOCUMENT.designMode = 'On';
FullHtml(EDITFORM_DOCUMENT,document.getElementsByName(eval(OBJ_NAME).hiddenName)[0].value);
var el = EDITFORM_DOCUMENT.body;
if (EDITFORM_DOCUMENT.addEventListener){
EDITFORM_DOCUMENT.addEventListener('click',DisableMenu,false);
EDITFORM_DOCUMENT.addEventListener('keypress', ctlent, true);
} else if (el.attachEvent){
el.attachEvent('onclick',DisableMenu);
el.attachEvent('onkeypress', ctlent);
}
}
this.data = function()
{
var htmlResult;
if (BROWSER == '') {
htmlResult = document.getElementById("CodeForm").value;
}else{
if (EDITMODE=="CODE"){
htmlResult = EDITFORM_DOCUMENT.body.innerText;
}else{
htmlResult = EDITFORM_DOCUMENT.body.innerHTML;}
}
DisableMenu();
htmlResult = HtmlToXhtml(htmlResult);
htmlResult = ClearScriptTag(htmlResult);
document.getElementsByName(this.hiddenName)[0].value = htmlResult;
return htmlResult;
}
}
function ctlent(event){
var bool=event.ctrlKey && (event.keyCode==13 || event.keyCode==10);
if(bool&&EDITMODE!="DESIGN"){
alert("当前模式为代码模式,请转换至设计模式后提交");
return false;
}else if(bool){
parent.document.form.EditSubmit.click();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -