?? wysiwyg.js
字號:
?//
// openWYSIWYG v1.01 Copyright (c) 2006 openWebWare.com
// This copyright notice MUST stay intact for use.
//
// An open source WYSIWYG editor for use in web based applications.
// For full source code and docs, visit http://www.openwebware.com/
//
// This library is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published
// by the Free Software Foundation; either version 2.1 of the License, or
// (at your option) any later version.
//
// This library is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
// License for more details.
//
// You should have received a copy of the GNU Lesser General Public License along
// with this library; if not, write to the Free Software Foundation, Inc., 59
// Temple Place, Suite 330, Boston, MA 02111-1307 USA
/* ---------------------------------------------------------------------- *\
Global Variables: Set global variables such as images directory,
WYSIWYG Height, Width, and CSS Directory.
\* ---------------------------------------------------------------------- */
// Basic Directory
basicDir = "/pub/js/openwysiwyg/";
// Images Directory
imagesDir = basicDir+"icons/";
// CSS Directory
cssDir = basicDir+"styles/";
// Popups Directory
popupsDir = basicDir+"popups/";
// WYSIWYG Width and Height
wysiwygWidth = 500;
wysiwygHeight = 150;
// Include Style Sheet
document.write('<link rel="stylesheet" type="text/css" href="' +cssDir+ 'styles.css">\n');
/* ---------------------------------------------------------------------- *\
Toolbar Settings: Set the features and buttons available in the WYSIWYG
Toolbar.
\* ---------------------------------------------------------------------- */
// List of available font types
var Fonts = new Array();
Fonts[0] = "宋體";
Fonts[1] = "黑體";
Fonts[2] = "幼圓";
Fonts[3] = "Arial";
Fonts[4] = "Sans Serif";
Fonts[5] = "Tahoma";
Fonts[6] = "Verdana";
Fonts[7] = "Courier New";
Fonts[8] = "Georgia";
Fonts[9] = "Times New Roman";
Fonts[10] = "Impact";
Fonts[11] = "Comic Sans MS";
// List of available block formats (not in use)
var BlockFormats = new Array();
BlockFormats[0] = "Address";
BlockFormats[1] = "Bulleted List";
BlockFormats[2] = "Definition";
BlockFormats[3] = "Definition Term";
BlockFormats[4] = "Directory List";
BlockFormats[5] = "Formatted";
BlockFormats[6] = "Heading 1";
BlockFormats[7] = "Heading 2";
BlockFormats[8] = "Heading 3";
BlockFormats[9] = "Heading 4";
BlockFormats[10] = "Heading 5";
BlockFormats[11] = "Heading 6";
BlockFormats[12] = "Menu List";
BlockFormats[13] = "Normal";
BlockFormats[14] = "Numbered List";
// List of available font sizes
var FontSizes = new Array();
FontSizes[0] = "1";
FontSizes[1] = "2";
FontSizes[2] = "3";
FontSizes[3] = "4";
FontSizes[4] = "5";
FontSizes[5] = "6";
FontSizes[6] = "7";
// Order of available commands in toolbar one
var buttonName = new Array();
buttonName[0] = "bold";
buttonName[1] = "italic";
buttonName[2] = "underline";
//buttonName[3] = "strikethrough";
buttonName[4] = "seperator";
buttonName[5] = "subscript";
buttonName[6] = "superscript";
buttonName[7] = "seperator";
buttonName[8] = "justifyleft";
buttonName[9] = "justifycenter";
buttonName[10] = "justifyright";
buttonName[11] = "seperator";
buttonName[12] = "unorderedlist";
buttonName[13] = "orderedlist";
buttonName[14] = "outdent";
buttonName[15] = "indent";
// Order of available commands in toolbar two
var buttonName2 = new Array();
buttonName2[0] = "forecolor";
buttonName2[1] = "backcolor";
buttonName2[2] = "seperator";
buttonName2[3] = "cut";
buttonName2[4] = "copy";
buttonName2[5] = "paste";
buttonName2[6] = "seperator";
buttonName2[7] = "undo";
buttonName2[8] = "redo";
buttonName2[9] = "seperator";
buttonName2[10] = "inserttable";
buttonName2[11] = "insertimage";
buttonName2[12] = "createlink";
buttonName2[13] = "seperator";
buttonName2[14] = "multimedia";
buttonName2[15] = "insertsmileys";
buttonName2[16] = "seperator";
buttonName2[17] = "viewSource";
//buttonName2[16] = "help";
// List of available actions and their respective ID and images
var ToolbarList = {
//Name buttonID buttonTitle buttonImage buttonImageRollover
"bold": ['Bold', '加粗', imagesDir + 'bold.gif', imagesDir + 'bold_on.gif'],
"italic": ['Italic', '斜體', imagesDir + 'italics.gif', imagesDir + 'italics_on.gif'],
"underline": ['Underline', '下劃線', imagesDir + 'underline.gif', imagesDir + 'underline_on.gif'],
"strikethrough": ['Strikethrough', '刪除線', imagesDir + 'strikethrough.gif', imagesDir + 'strikethrough_on.gif'],
"seperator": ['', '', imagesDir + 'seperator.gif', imagesDir + 'seperator.gif'],
"subscript": ['Subscript', '下標', imagesDir + 'subscript.gif', imagesDir + 'subscript_on.gif'],
"superscript": ['Superscript', '上標', imagesDir + 'superscript.gif', imagesDir + 'superscript_on.gif'],
"justifyleft": ['Justifyleft', '左對齊', imagesDir + 'justify_left.gif', imagesDir + 'justify_left_on.gif'],
"justifycenter": ['Justifycenter', '居中對齊', imagesDir + 'justify_center.gif', imagesDir + 'justify_center_on.gif'],
"justifyright": ['Justifyright', '右對齊', imagesDir + 'justify_right.gif', imagesDir + 'justify_right_on.gif'],
"unorderedlist": ['InsertUnorderedList', '無序列表',imagesDir + 'list_unordered.gif', imagesDir + 'list_unordered_on.gif'],
"orderedlist": ['InsertOrderedList', '有序列表', imagesDir + 'list_ordered.gif', imagesDir + 'list_ordered_on.gif'],
"outdent": ['Outdent', '減小縮進', imagesDir + 'indent_left.gif', imagesDir + 'indent_left_on.gif'],
"indent": ['Indent', '增加縮進', imagesDir + 'indent_right.gif', imagesDir + 'indent_right_on.gif'],
"cut": ['Cut', '剪切', imagesDir + 'cut.gif', imagesDir + 'cut_on.gif'],
"copy": ['Copy', '復制', imagesDir + 'copy.gif', imagesDir + 'copy_on.gif'],
"paste": ['Paste', '粘貼', imagesDir + 'paste.gif', imagesDir + 'paste_on.gif'],
"forecolor": ['ForeColor', '選擇文字顏色', imagesDir + 'forecolor.gif', imagesDir + 'forecolor_on.gif'],
"backcolor": ['BackColor', '選擇背景顏色', imagesDir + 'backcolor.gif', imagesDir + 'backcolor_on.gif'],
"undo": ['Undo', '撤銷', imagesDir + 'undo.gif', imagesDir + 'undo_on.gif'],
"redo": ['Redo', '重做', imagesDir + 'redo.gif', imagesDir + 'redo_on.gif'],
"inserttable": ['InsertTable', '插入表格', imagesDir + 'insert_table.gif', imagesDir + 'insert_table_on.gif'],
"insertimage": ['InsertImage', '插入圖片', imagesDir + 'insert_picture.gif', imagesDir + 'insert_picture_on.gif'],
"createlink": ['CreateLink', '創建鏈接', imagesDir + 'insert_hyperlink.gif', imagesDir + 'insert_hyperlink_on.gif'],
"viewSource": ['ViewSource', '查看源代碼', imagesDir + 'view_source.gif', imagesDir + 'view_source_on.gif'],
"viewText": ['ViewText', '正常編輯', imagesDir + 'view_text.gif', imagesDir + 'view_text_on.gif'],
"help": ['Help', '幫助', imagesDir + 'help.gif', imagesDir + 'help_on.gif'],
"selectfont": ['SelectFont', '選擇字體', imagesDir + 'select_font.gif', imagesDir + 'select_font_on.gif'],
"selectsize": ['SelectSize', '選擇字號', imagesDir + 'select_size.gif', imagesDir + 'select_size_on.gif'],
"multimedia": ['MultiMedia', '插入電影、音樂', imagesDir + 'media.gif', imagesDir + 'media_on.gif'],
"insertsmileys": ['InsertSmileys', '插入表情', imagesDir + 'smileys.gif', imagesDir + 'smileys_on.gif']
};
/* ---------------------------------------------------------------------- *\
Function : insertAdjacentHTML(), insertAdjacentText() and insertAdjacentElement()
Description : Emulates insertAdjacentHTML(), insertAdjacentText() and
insertAdjacentElement() three functions so they work with
Netscape 6/Mozilla
Notes : by Thor Larholm me@jscript.dk
\* ---------------------------------------------------------------------- */
if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement){
HTMLElement.prototype.insertAdjacentElement = function
(where,parsedNode)
{
switch (where){
case 'beforeBegin':
this.parentNode.insertBefore(parsedNode,this)
break;
case 'afterBegin':
this.insertBefore(parsedNode,this.firstChild);
break;
case 'beforeEnd':
this.appendChild(parsedNode);
break;
case 'afterEnd':
if (this.nextSibling)
this.parentNode.insertBefore(parsedNode,this.nextSibling);
else this.parentNode.appendChild(parsedNode);
break;
}
}
HTMLElement.prototype.insertAdjacentHTML = function
(where,htmlStr)
{
var r = this.ownerDocument.createRange();
r.setStartBefore(this);
var parsedHTML = r.createContextualFragment(htmlStr);
this.insertAdjacentElement(where,parsedHTML)
}
HTMLElement.prototype.insertAdjacentText = function
(where,txtStr)
{
var parsedText = document.createTextNode(txtStr)
this.insertAdjacentElement(where,parsedText)
}
};
// Create viewTextMode global variable and set to 0
// enabling all toolbar commands while in HTML mode
viewTextMode = 0;
/* ---------------------------------------------------------------------- *\
Function : generate_wysiwyg()
Description : replace textarea with wysiwyg editor
Usage : generate_wysiwyg("textarea_id");
Arguments : textarea_id - ID of textarea to replace
\* ---------------------------------------------------------------------- */
function generate_wysiwyg(textareaID) {
// Hide the textarea
document.getElementById(textareaID).style.display = 'none';
// Pass the textareaID to the "n" variable.
var n = textareaID;
// Toolbars width is 2 pixels wider than the wysiwygs
toolbarWidth = parseFloat(wysiwygWidth) + 2;
// Generate WYSIWYG toolbar one
var toolbar;
toolbar = '<table cellpadding="0" cellspacing="0" border="0" class="toolbar1" style="width:' + toolbarWidth + 'px;"><tr><td style="width: 6px;"><img src="' +imagesDir+ 'seperator2.gif" alt="" hspace="3"></td>';
// Create IDs for inserting Font Type and Size drop downs
toolbar += '<td style="width: 90px;"><span id="FontSelect' + n + '"></span></td>';
toolbar += '<td style="width: 60px;"><span id="FontSizes' + n + '"></span></td>';
// Output all command buttons that belong to toolbar one
for (var i = 0; i <= buttonName.length;) {
if (buttonName[i]) {
var buttonObj = ToolbarList[buttonName[i]];
var buttonID = buttonObj[0];
var buttonTitle = buttonObj[1];
var buttonImage = buttonObj[2];
var buttonImageRollover = buttonObj[3];
if (buttonName[i] == "seperator") {
toolbar += '<td style="width: 12px;" align="center"><img src="' +buttonImage+ '" border=0 unselectable="on" width="2" height="18" hspace="2" unselectable="on"></td>';
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -