📄 editor.js
字号:
var h = mediaDocument.getElementById(cmd+'h').value;
var auto = mediaDocument.getElementById(cmd+'auto').value;
if (auto==0){
autocode='false';
}else if (auto==1){
autocode='true';
}
if (FtCheckMediaFileType(cmd,url,"/",media) == false) {
return false;
}
if (w.match(/^\d+$/) == null) {
alert(MSG_INVALID_WIDTH);
return false;
}
if (h.match(/^\d+$/) == null) {
alert(MSG_INVALID_HEIGHT);
return false;
}
if (media == 'rm') {
str = '[rm='+w+','+h+','+autocode+']'+url+'[/rm]';
}else if (media=='wmv'){
str = '[mp='+w+','+h+','+autocode+']'+url+'[/mp]';
}else if (media=='flv'){
str = '[flv='+w+','+h+','+autocode+']'+url+'[/flv]';
}
if (CurrentMode=='design'){
FtEditorForm.focus();
FtSelect();
var element = document.createElement("span");
element.appendChild(document.createTextNode(str));
FtInsertItem(element);
}else{
FtReTurnSelection();
FtInsertarea(str);
}
FtDisableMenu();
}
//插入链接
function FtDrawLinkEnd()
{
var range;
var url = LINK_DOCUMENT.getElementById('hyperLink').value;
var target = LINK_DOCUMENT.getElementById('hyperLinkTarget').value;
if (url.match(/http:\/\/.{3,}/) == null) {
alert(MSG_INPUT_URL);
return false;
}
if (CurrentMode=='design'){
FtEditorForm.focus();
FtSelect();
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') {
FtExecuteValue('CreateLink', url);
element = RANGE.parentElement();
if (target) {
element.target = target;
}
}
} else {
FtExecuteValue('CreateLink', url);
element = RANGE.startContainer.previousSibling;
element.target = target;
if (target) {
element.target = target;
}
}
}else{
var Text = FtReTurnSelection();
str = '[URL='+url+']'+Text+'[/URL]';
FtInsertarea(str);
}
FtDisableMenu();
}
//选择编辑器中的内容
function FtSelection()
{
if (BROWSER == 'IE') {
document.frames("FtEditorForm").focus();
SELECTION = EDITFORM_DOCUMENT.selection;
RANGE = SELECTION.createRange();
RANGE_TEXT = RANGE.text;
} else {
document.getElementById("FtEditorForm").contentWindow.focus();
SELECTION = document.getElementById("FtEditorForm").contentWindow.getSelection();
RANGE = SELECTION.getRangeAt(0);
RANGE_TEXT = RANGE.toString();
}
}
function FtSelect()
{
if (BROWSER == 'IE') {
RANGE.select();
}
}
//往编辑器中插入代码
function FtInsertItem(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 FtExecuteValue(cmd, value)
{
EDITFORM_DOCUMENT.execCommand(cmd, false, value);
}
function FtSimpleExecute(cmd)
{
FtEditorForm.focus();
EDITFORM_DOCUMENT.execCommand(cmd, false, null);
FtDisableMenu();
}
function FtExecute(cmd, value)
{
switch (cmd)
{
case 'Ft_SOURCE':
document.getElementById("FtCodeForm").value = htmltoubb(EDITFORM_DOCUMENT.body.innerHTML);
document.getElementById("FtEditorIframe").style.display = 'none';
document.getElementById("FtEditTextarea").style.display = 'block';
FtDisableToolbar(false);
document.getElementById("CurrentMode").value='code';
document.getElementById("FtCodeForm").focus();
eval("window.CurrentMode = new Object();");
CurrentMode='code';
FtDisableMenu();
FtReloadIframe();
break;
case 'Ft_DESIGN':
//document.getElementById("FtCodeForm").value = FtHtmlToXhtml(EDITFORM_DOCUMENT.body.innerHTML);
EDITFORM_DOCUMENT.body.innerHTML = ubbtohtml(document.getElementById("FtCodeForm").value);//加入ubb转换为html代码
document.getElementById("FtEditTextarea").style.display = 'none';
document.getElementById("FtEditorIframe").style.display = 'block';
FtDisableToolbar(true);
document.getElementById("CurrentMode").value='design';
eval("window.CurrentMode = new Object();");
CurrentMode='design';
FtDisableMenu();
FtReloadIframe();
break;
case 'Ft_UNDO':
FtSimpleExecute('undo');
break;
case 'Ft_REDO':
FtSimpleExecute('redo');
break;
case 'Ft_CUT':
FtSimpleExecute('cut');
break;
case 'Ft_COPY':
FtSimpleExecute('copy');
break;
case 'Ft_PASTE':
FtSimpleExecute('paste');
break;
case 'Ft_SELECTALL':
FtSimpleExecute('selectall');
break;
case 'Ft_SUBSCRIPT':
FtSimpleExecute('subscript');
break;
case 'Ft_SUPERSCRIPT':
FtSimpleExecute('superscript');
break;
case 'Ft_BOLD':
FtSimpleExecute('bold');
break;
case 'Ft_ITALIC':
FtSimpleExecute('italic');
break;
case 'Ft_UNDERLINE':
FtSimpleExecute('underline');
break;
case 'Ft_STRIKE':
FtSimpleExecute('strikethrough');
break;
case 'Ft_JUSTIFYLEFT':
FtSimpleExecute('justifyleft');
break;
case 'Ft_JUSTIFYCENTER':
FtSimpleExecute('justifycenter');
break;
case 'Ft_JUSTIFYRIGHT':
FtSimpleExecute('justifyright');
break;
case 'Ft_JUSTIFYFULL':
FtSimpleExecute('justifyfull');
break;
case 'Ft_NUMBEREDLIST':
FtSimpleExecute('insertorderedlist');
break;
case 'Ft_UNORDERLIST':
FtSimpleExecute('insertunorderedlist');
break;
case 'Ft_INDENT':
FtSimpleExecute('indent');
break;
case 'Ft_OUTDENT':
FtSimpleExecute('outdent');
break;
case 'Ft_REMOVE':
FtSimpleExecute('removeformat');
break;
case 'Ft_TITLE':
FtDisplayMenu(cmd);
break;
case 'Ft_TITLE_END':
FtEditorForm.focus();
value = '<' + value + '>';
FtSelect();
FtExecuteValue('FormatBlock', value);
FtDisableMenu();
break;
case 'Ft_FONTNAME':
FtDisplayMenu(cmd);
break;
case 'Ft_FONTNAME_END':
FtEditorForm.focus();
FtSelect();
FtExecuteValue('fontname', value);
FtDisableMenu();
break;
case 'Ft_FONTSIZE':
FtDisplayMenu(cmd);
break;
case 'Ft_FONTSIZE_END':
FtEditorForm.focus();
value = value.substr(0, 1);
FtSelect();
FtExecuteValue('fontsize', value);
FtDisableMenu();
break;
case 'Ft_TEXTCOLOR':
FtDisplayMenu(cmd);
break;
case 'Ft_TEXTCOLOR_END':
FtEditorForm.focus();
FtSelect();
FtExecuteValue('ForeColor', value);
FtDisableMenu();
break;
case 'Ft_BGCOLOR':
FtDisplayMenu(cmd);
break;
case 'Ft_BGCOLOR_END':
FtEditorForm.focus();
if (BROWSER == 'IE') {
FtSelect();
FtExecuteValue('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);
}
}
FtDisableMenu();
break;
case 'Ft_ICON':
FtDisplayMenu(cmd);
break;
case 'Ft_ICON_END':
FtEditorForm.focus();
var element = document.createElement("img");
element.src = value;
element.border = 0;
element.alt = "";
FtSelect();
FtInsertItem(element);
FtDisableMenu();
break;
case 'Ft_IMAGE':
FtDisplayMenu(cmd);
FtImageIframe.focus();
IMAGE_DOCUMENT.getElementById(cmd+'submitButton').focus();
break;
case 'Ft_FLASH':
FtDisplayMenu(cmd);
FtFlashIframe.focus();
FLASH_DOCUMENT.getElementById(cmd+'submitButton').focus();
break;
case 'Ft_MEDIA':
FtDisplayMenu(cmd);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -