📄 richtext.js
字号:
} else {
oRTE = document.getElementById(rte).contentWindow.document;
}
if (document.getElementById("chkSrc" + rte).checked) {
document.info.style.disabled = true;
document.info.font.disabled = true;
document.info.size.disabled = true;
document.onmouseover = disabledButton;
document.onmousedown = disabledButton;
document.onmouseup = disabledButton;
document.onmouseout = disabledButton;
document.bold.src='../images/bold_d.gif';
document.italic.src='../images/italic_d.gif';
document.underline.src='../images/underline_d.gif';
document.left_just.src='../images/left_just_d.gif';
document.centre.src='../images/centre_d.gif';
document.right_just.src='../images/right_just_d.gif';
document.justifyfull.src='../images/justifyfull_d.gif';
document.hr.src='../images/hr_d.gif';
document.numbered_list.src='../images/numbered_list_d.gif';
document.list.src='../images/list_d.gif';
document.outdent.src='../images/outdent_d.gif';
document.indent.src='../images/indent_d.gif';
document.textcolor.src='../images/textcolor_d.gif';
document.bgcolor.src='../images/bgcolor_d.gif';
document.hyperlink.src='../images/hyperlink_d.gif';
document.image.src='../images/image_d.gif';
document.smilie.src='../images/smilie_d.gif';
document.eraser.src='../images/eraser_d.gif';
oRTE.body.style.fontFamily = '"Courier New", courier, arial, tahoma';
oRTE.body.style.fontSize = '9pt';
if (document.all) {
oRTE.body.innerText = oRTE.body.innerHTML;
} else {
var htmlSrc = oRTE.createTextNode(oRTE.body.innerHTML);
oRTE.body.innerHTML = "";
oRTE.body.appendChild(htmlSrc);
}
} else {
document.info.style.disabled = false;
document.info.font.disabled = false;
document.info.size.disabled = false;
document.onmouseover = raiseButton;
document.onmouseout = normalButton;
document.onmousedown = lowerButton;
document.onmouseup = raiseButton;
document.bold.src='../images/bold.gif';
document.italic.src='../images/italic.gif';
document.underline.src='../images/underline.gif';
document.left_just.src='../images/left_just.gif';
document.centre.src='../images/centre.gif';
document.right_just.src='../images/right_just.gif';
document.justifyfull.src='../images/justifyfull.gif';
document.hr.src='../images/hr.gif';
document.numbered_list.src='../images/numbered_list.gif';
document.list.src='../images/list.gif';
document.outdent.src='../images/outdent.gif';
document.indent.src='../images/indent.gif';
document.textcolor.src='../images/textcolor.gif';
document.bgcolor.src='../images/bgcolor.gif';
document.hyperlink.src='../images/hyperlink.gif';
document.image.src='../images/image.gif';
document.smilie.src='../images/smilie.gif';
document.eraser.src='../images/eraser.gif';
oRTE.body.style.fontFamily = 'Times, "Times New Roman", serif;';
oRTE.body.style.fontSize = '12pt';
if (document.all) {
//fix for IE
var output = escape(oRTE.body.innerText);
output = output.replace("%3CP%3E%0D%0A%3CHR%3E", "%3CHR%3E");
output = output.replace("%3CHR%3E%0D%0A%3C/P%3E", "%3CHR%3E");
oRTE.body.innerHTML = unescape(output);
} else {
var htmlSrc = oRTE.body.ownerDocument.createRange();
htmlSrc.selectNodeContents(oRTE.body);
oRTE.body.innerHTML = htmlSrc.toString();
if(oRTE.body.innerHTML == "") { FormatText(rte, "fontname", "Times New Roman"); }
}
}
}
//Function to format text in the text box
function FormatText(rte, command, option) {
var oRTE;
if (document.info.htmlsource.checked == false) {
if (document.all) {
oRTE = frames[rte];
//get current selected range
var selection = oRTE.document.selection;
if (selection != null) {
rng = selection.createRange();
}
} else {
oRTE = document.getElementById(rte).contentWindow;
//get currently selected range
var selection = oRTE.getSelection();
rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
}
try {
if ((command == "forecolor") || (command == "hilitecolor")) {
//save current values
parent.command = command;
currentRTE = rte;
//position and show color palette
buttonElement = document.getElementById(command + '_' + rte);
// Ernst de Moor: Fix the amount of digging parents up, in case the RTE editor itself is displayed in a div.
document.getElementById('cp' + rte).style.left = getOffsetLeft(buttonElement, 4) + "px";
document.getElementById('cp' + rte).style.top = (getOffsetTop(buttonElement, 4) + buttonElement.offsetHeight + 4) + "px";
if (document.getElementById('cp' + rte).style.visibility == "hidden") {
document.getElementById('cp' + rte).style.visibility = "visible";
document.getElementById('cp' + rte).style.display = "inline";
} else {
document.getElementById('cp' + rte).style.visibility = "hidden";
document.getElementById('cp' + rte).style.display = "none";
}
} else if (command == "createlink") {
var szURL = prompt("Enter a web address (URL):", "http://");
try {
//ignore error for blank urls
oRTE.document.execCommand("Unlink", false, null);
oRTE.document.execCommand("CreateLink", false, szURL);
} catch (e) {
//do nothing
}
} else {
oRTE.focus();
oRTE.document.execCommand(command, false, option);
oRTE.focus();
}
} catch (e) {
alert(e);
}
}
}
//Function to set color
function setColor(color) {
var rte = currentRTE;
var oRTE;
if (document.all) {
oRTE = frames[rte];
} else {
oRTE = document.getElementById(rte).contentWindow;
}
var parentCommand = parent.command;
if (document.all) {
//retrieve selected range
var sel = oRTE.document.selection;
if (parentCommand == "hilitecolor") parentCommand = "backcolor";
if (sel != null) {
var newRng = sel.createRange();
newRng = rng;
newRng.select();
}
}
oRTE.focus();
oRTE.document.execCommand(parentCommand, false, color);
oRTE.focus();
document.getElementById('cp' + rte).style.visibility = "hidden";
document.getElementById('cp' + rte).style.display = "none";
}
//Function to add image
function AddImage(rte) {
var oRTE;
if (document.info.htmlsource.checked == false) {
if (document.all) {
oRTE = frames[rte];
//get current selected range
var selection = oRTE.document.selection;
if (selection != null) {
rng = selection.createRange();
}
} else {
oRTE = document.getElementById(rte).contentWindow;
//get currently selected range
var selection = oRTE.getSelection();
rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
}
imagePath = prompt('Enter Image URL:', 'http://');
if ((imagePath != null) && (imagePath != "")) {
oRTE.focus();
oRTE.document.execCommand('InsertImage', false, imagePath);
oRTE.focus();
}
}
}
// Ernst de Moor: Fix the amount of digging parents up, in case the RTE editor itself is displayed in a div.
function getOffsetTop(elm, parents_up) {
var mOffsetTop = elm.offsetTop;
var mOffsetParent = elm.offsetParent;
if(!parents_up) {
parents_up = 10000; // arbitrary big number
}
while(parents_up>0 && mOffsetParent) {
mOffsetTop += mOffsetParent.offsetTop;
mOffsetParent = mOffsetParent.offsetParent;
parents_up--;
}
return mOffsetTop;
}
// Ernst de Moor: Fix the amount of digging parents up, in case the RTE editor itself is displayed in a div.
function getOffsetLeft(elm, parents_up) {
var mOffsetLeft = elm.offsetLeft;
var mOffsetParent = elm.offsetParent;
if(!parents_up) {
parents_up = 10000; // arbitrary big number
}
while(parents_up>0 && mOffsetParent) {
mOffsetLeft += mOffsetParent.offsetLeft;
mOffsetParent = mOffsetParent.offsetParent;
parents_up--;
}
return mOffsetLeft;
}
function Select(rte, selectname) {
var oRTE;
if (document.all) {
oRTE = frames[rte];
//get current selected range
var selection = oRTE.document.selection;
if (selection != null) {
rng = selection.createRange();
}
} else {
oRTE = document.getElementById(rte).contentWindow;
//get currently selected range
var selection = oRTE.getSelection();
rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
}
var idx = document.getElementById(selectname).selectedIndex;
// First one is always a label
if (idx != 0) {
var selected = document.getElementById(selectname).options[idx].value;
var cmd = selectname.replace('_' + rte, '');
oRTE.focus();
oRTE.document.execCommand(cmd, false, selected);
oRTE.focus();
document.getElementById(selectname).selectedIndex = 0;
}
}
// function to clear formatting of selected text
function clearFormatting(rte) {
var oRTE;
if (document.all) {
oRTE = frames[rte];
} else {
oRTE = document.getElementById(rte).contentWindow;
}
oRTE.focus();
oRTE.document.execCommand("RemoveFormat");
oRTE.focus();
}
function kb_handler(evt) {
var rte = evt.target.id;
//contributed by Anti Veeranna (thanks Anti!)
if (evt.ctrlKey) {
var key = String.fromCharCode(evt.charCode).toLowerCase();
var cmd = '';
switch (key) {
case 'b': cmd = "bold"; break;
case 'i': cmd = "italic"; break;
case 'u': cmd = "underline"; break;
};
if (cmd) {
FormatText(rte, cmd, true);
//evt.target.ownerDocument.execCommand(cmd, false, true);
// stop the event bubble
evt.preventDefault();
evt.stopPropagation();
}
}
}
function docChanged (evt) {
alert('changed');
}
function stripHTML(oldString) {
var newString = oldString.replace(/(<([^>]+)>)/ig,"");
//replace carriage returns and line feeds
newString = newString.replace(/\r\n/g," ");
newString = newString.replace(/\n/g," ");
newString = newString.replace(/\r/g," ");
//trim string
newString = trim(newString);
return newString;
}
function trim(inputString) {
// Removes leading and trailing spaces from the passed string. Also removes
// consecutive spaces and replaces it with one space. If something besides
// a string is passed in (null, custom object, etc.) then return the input.
if (typeof inputString != "string") return inputString;
var retValue = inputString;
var ch = retValue.substring(0, 1);
while (ch == " ") { // Check for spaces at the beginning of the string
retValue = retValue.substring(1, retValue.length);
ch = retValue.substring(0, 1);
}
ch = retValue.substring(retValue.length-1, retValue.length);
while (ch == " ") { // Check for spaces at the end of the string
retValue = retValue.substring(0, retValue.length-1);
ch = retValue.substring(retValue.length-1, retValue.length);
}
// Note that there are two spaces in the string - look for multiple spaces within the string
while (retValue.indexOf(" ") != -1) {
// Again, there are two spaces in each of the strings
retValue = retValue.substring(0, retValue.indexOf(" ")) + retValue.substring(retValue.indexOf(" ")+1, retValue.length);
}
return retValue; // Return the trimmed string back to the user
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -