?? wysiwyg.js
字號:
// when inserting into a textnode
// we create 2 new textnodes
// and put the insertNode in between
var textNode = container;
container = textNode.parentNode;
var text = textNode.nodeValue;
// text before the split
var textBefore = text.substr(0,pos);
// text after the split
var textAfter = text.substr(pos);
var beforeNode = document.createTextNode(textBefore);
afterNode = document.createTextNode(textAfter);
// insert the 3 new nodes before the old one
container.insertBefore(afterNode, textNode);
container.insertBefore(insertNode, afterNode);
container.insertBefore(beforeNode, insertNode);
// remove the old node
container.removeChild(textNode);
}
else {
// else simply insert the node
afterNode = container.childNodes[pos];
container.insertBefore(insertNode, afterNode);
}
range.setEnd(afterNode, 0);
range.setStart(afterNode, 0);
}
sel.addRange(range);
};
/* ---------------------------------------------------------------------- *\
Function : _dec_to_rgb
Description : convert a decimal color value to rgb hexadecimal
Usage : var hex = _dec_to_rgb('65535'); // returns FFFF00
Arguments : value - dec value
\* ---------------------------------------------------------------------- */
function _dec_to_rgb(value) {
var hex_string = "";
for (var hexpair = 0; hexpair < 3; hexpair++) {
var myByte = value & 0xFF; // get low byte
value >>= 8; // drop low byte
var nybble2 = myByte & 0x0F; // get low nybble (4 bits)
var nybble1 = (myByte >> 4) & 0x0F; // get high nybble
hex_string += nybble1.toString(16); // convert nybble to hex
hex_string += nybble2.toString(16); // convert nybble to hex
}
return hex_string.toUpperCase();
};
/* ---------------------------------------------------------------------- *\
Function : outputFontSelect()
Description : creates the Font Select drop down and inserts it into
the toolbar
Usage : outputFontSelect(n)
Arguments : n - The editor identifier that the Font Select will update
when making font changes (the textarea's ID)
\* ---------------------------------------------------------------------- */
function outputFontSelect(n) {
var FontSelectObj = ToolbarList['selectfont'];
var FontSelect = FontSelectObj[2];
var FontSelectOn = FontSelectObj[3];
Fonts.sort();
var FontSelectDropDown = new Array;
FontSelectDropDown[n] = '<table border="0" cellpadding="0" cellspacing="0"><tr><td onMouseOver="document.getElementById(\'selectFont' + n + '\').src=\'' + FontSelectOn + '\';" onMouseOut="document.getElementById(\'selectFont' + n + '\').src=\'' + FontSelect + '\';"><img src="' + FontSelect + '" id="selectFont' + n + '" width="85" height="20" onClick="showFonts(\'' + n + '\');" unselectable="on"><br>';
FontSelectDropDown[n] += '<span id="Fonts' + n + '" class="dropdown" style="width: 145px;">';
for (var i = 0; i <= Fonts.length;) {
if (Fonts[i]) {
FontSelectDropDown[n] += '<button type="button" onClick="formatText(\'FontName\',\'' + n + '\',\'' + Fonts[i] + '\')\; hideFonts(\'' + n + '\');" onMouseOver="this.className=\'mouseOver\'" onMouseOut="this.className=\'mouseOut\'" class="mouseOut" style="width: 120px;"><table cellpadding="0" cellspacing="0" border="0"><tr><td align="left" style="font-family:' + Fonts[i] + '; font-size: 12px;">' + Fonts[i] + '</td></tr></table></button><br>';
}
i++;
}
FontSelectDropDown[n] += '</span></td></tr></table>';
document.getElementById('FontSelect' + n).insertAdjacentHTML("afterBegin", FontSelectDropDown[n]);
};
/* ---------------------------------------------------------------------- *\
Function : outputFontSizes()
Description : creates the Font Sizes drop down and inserts it into
the toolbar
Usage : outputFontSelect(n)
Arguments : n - The editor identifier that the Font Sizes will update
when making font changes (the textarea's ID)
\* ---------------------------------------------------------------------- */
function outputFontSizes(n) {
var FontSizeObj = ToolbarList['selectsize'];
var FontSize = FontSizeObj[2];
var FontSizeOn = FontSizeObj[3];
FontSizes.sort();
var FontSizesDropDown = new Array;
FontSizesDropDown[n] = '<table border="0" cellpadding="0" cellspacing="0"><tr><td onMouseOver="document.getElementById(\'selectSize' + n + '\').src=\'' + FontSizeOn + '\';" onMouseOut="document.getElementById(\'selectSize' + n + '\').src=\'' + FontSize + '\';"><img src="' + FontSize + '" id="selectSize' + n + '" width="49" height="20" onClick="showFontSizes(\'' + n + '\');" unselectable="on"><br>';
FontSizesDropDown[n] += '<span id="Sizes' + n + '" class="dropdown" style="width: 170px;">';
for (var i = 0; i <= FontSizes.length;) {
if (FontSizes[i]) {
FontSizesDropDown[n] += '<button type="button" onClick="formatText(\'FontSize\',\'' + n + '\',\'' + FontSizes[i] + '\')\;hideFontSizes(\'' + n + '\');" onMouseOver="this.className=\'mouseOver\'" onMouseOut="this.className=\'mouseOut\'" class="mouseOut" style="width: 145px;"><table cellpadding="0" cellspacing="0" border="0"><tr><td align="left" style="font-family: arial, verdana, helvetica;"><font size="' + FontSizes[i] + '">' + FontSizes[i] + ' 號</font></td></tr></table></button><br>';
}
i++;
}
FontSizesDropDown[n] += '</span></td></tr></table>';
document.getElementById('FontSizes' + n).insertAdjacentHTML("afterBegin", FontSizesDropDown[n]);
};
/* ---------------------------------------------------------------------- *\
Function : hideFonts()
Description : Hides the list of font names in the font select drop down
Usage : hideFonts(n)
Arguments : n - The editor identifier (the textarea's ID)
\* ---------------------------------------------------------------------- */
function hideFonts(n) {
document.getElementById('Fonts' + n).style.display = 'none';
};
/* ---------------------------------------------------------------------- *\
Function : hideFontSizes()
Description : Hides the list of font sizes in the font sizes drop down
Usage : hideFontSizes(n)
Arguments : n - The editor identifier (the textarea's ID)
\* ---------------------------------------------------------------------- */
function hideFontSizes(n) {
document.getElementById('Sizes' + n).style.display = 'none';
};
/* ---------------------------------------------------------------------- *\
Function : showFonts()
Description : Shows the list of font names in the font select drop down
Usage : showFonts(n)
Arguments : n - The editor identifier (the textarea's ID)
\* ---------------------------------------------------------------------- */
function showFonts(n) {
if (document.getElementById('Fonts' + n).style.display == 'block') {
document.getElementById('Fonts' + n).style.display = 'none';
}
else {
document.getElementById('Fonts' + n).style.display = 'block';
document.getElementById('Fonts' + n).style.position = 'absolute';
}
};
/* ---------------------------------------------------------------------- *\
Function : showFontSizes()
Description : Shows the list of font sizes in the font sizes drop down
Usage : showFonts(n)
Arguments : n - The editor identifier (the textarea's ID)
\* ---------------------------------------------------------------------- */
function showFontSizes(n) {
if (document.getElementById('Sizes' + n).style.display == 'block') {
document.getElementById('Sizes' + n).style.display = 'none';
}
else {
document.getElementById('Sizes' + n).style.display = 'block';
document.getElementById('Sizes' + n).style.position = 'absolute';
}
};
/* ---------------------------------------------------------------------- *\
Function : viewSource()
Description : Shows the HTML source code generated by the WYSIWYG editor
Usage : showFonts(n)
Arguments : n - The editor identifier (the textarea's ID)
\* ---------------------------------------------------------------------- */
function viewSource(n) {
var getDocument = document.getElementById("wysiwyg" + n).contentWindow.document;
var browserName = navigator.appName;
// View Source for IE
if (browserName == "Microsoft Internet Explorer") {
var iHTML = getDocument.body.innerHTML;
getDocument.body.innerText = iHTML;
}
// View Source for Mozilla/Netscape
else {
var html = document.createTextNode(getDocument.body.innerHTML);
getDocument.body.innerHTML = "";
getDocument.body.appendChild(html);
}
// Hide the HTML Mode button and show the Text Mode button
document.getElementById('HTMLMode' + n).style.display = 'none';
document.getElementById('textMode' + n).style.display = 'block';
// set the font values for displaying HTML source
getDocument.body.style.fontSize = "12px";
getDocument.body.style.fontFamily = "Courier New";
viewTextMode = 1;
};
/* ---------------------------------------------------------------------- *\
Function : viewSource()
Description : Shows the HTML source code generated by the WYSIWYG editor
Usage : showFonts(n)
Arguments : n - The editor identifier (the textarea's ID)
\* ---------------------------------------------------------------------- */
function viewText(n) {
var getDocument = document.getElementById("wysiwyg" + n).contentWindow.document;
var browserName = navigator.appName;
// View Text for IE
if (browserName == "Microsoft Internet Explorer") {
var iText = getDocument.body.innerText;
getDocument.body.innerHTML = iText;
}
// View Text for Mozilla/Netscape
else {
var html = getDocument.body.ownerDocument.createRange();
html.selectNodeContents(getDocument.body);
getDocument.body.innerHTML = html.toString();
}
// Hide the Text Mode button and show the HTML Mode button
document.getElementById('textMode' + n).style.display = 'none';
document.getElementById('HTMLMode' + n).style.display = 'block';
// reset the font values
getDocument.body.style.fontSize = "";
getDocument.body.style.fontFamily = "";
viewTextMode = 0;
};
/* ---------------------------------------------------------------------- *\
Function : updateTextArea()
Description : Updates the text area value with the HTML source of the WYSIWYG
Usage : updateTextArea(n)
Arguments : n - The editor identifier (the textarea's ID)
\* ---------------------------------------------------------------------- */
function updateTextArea(n) {
document.getElementById(n).value = document.getElementById("wysiwyg" + n).contentWindow.document.body.innerHTML;
};
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -