⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tiny_mce_src.js

📁 Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发
💻 JS
📖 第 1 页 / 共 5 页
字号:
			case "reset":				var formObj = tinyMCE.isIE ? window.event.srcElement : e.target;				for (i=0; i<document.forms.length; i++) {					if (document.forms[i] == formObj)						window.setTimeout('tinyMCE.resetForm(' + i + ');', 10);				}				return;			case "keypress":				if (inst && inst.handleShortcut(e))					return false;				if (e.target.editorId) {					tinyMCE.instances[e.target.editorId].select();				} else {					if (e.target.ownerDocument.editorId)						tinyMCE.instances[e.target.ownerDocument.editorId].select();				}				if (tinyMCE.selectedInstance)					tinyMCE.selectedInstance.switchSettings();				// Insert P element				if ((tinyMCE.isGecko || tinyMCE.isOpera || tinyMCE.isSafari) && tinyMCE.settings.force_p_newlines && e.keyCode == 13 && !e.shiftKey) {					// Insert P element instead of BR					if (TinyMCE_ForceParagraphs._insertPara(tinyMCE.selectedInstance, e)) {						// Cancel event						tinyMCE.execCommand("mceAddUndoLevel");						return tinyMCE.cancelEvent(e);					}				}				// Handle backspace				if ((tinyMCE.isGecko && !tinyMCE.isSafari) && tinyMCE.settings.force_p_newlines && (e.keyCode == 8 || e.keyCode == 46) && !e.shiftKey) {					// Insert P element instead of BR					if (TinyMCE_ForceParagraphs._handleBackSpace(tinyMCE.selectedInstance, e.type)) {						// Cancel event						tinyMCE.execCommand("mceAddUndoLevel");						return tinyMCE.cancelEvent(e);					}				}				// Return key pressed				if (tinyMCE.isIE && tinyMCE.settings.force_br_newlines && e.keyCode == 13) {					if (e.target.editorId)						tinyMCE.instances[e.target.editorId].select();					if (tinyMCE.selectedInstance) {						var sel = tinyMCE.selectedInstance.getDoc().selection;						var rng = sel.createRange();						if (tinyMCE.getParentElement(rng.parentElement(), "li") != null)							return false;						// Cancel event						e.returnValue = false;						e.cancelBubble = true;						// Insert BR element						rng.pasteHTML("<br />");						rng.collapse(false);						rng.select();						tinyMCE.execCommand("mceAddUndoLevel");						tinyMCE.triggerNodeChange(false);						return false;					}				}				// Backspace or delete				if (e.keyCode == 8 || e.keyCode == 46) {					tinyMCE.selectedElement = e.target;					tinyMCE.linkElement = tinyMCE.getParentElement(e.target, "a");					tinyMCE.imgElement = tinyMCE.getParentElement(e.target, "img");					tinyMCE.triggerNodeChange(false);				}				return false;			case "keyup":			case "keydown":				tinyMCE.hideMenus();				tinyMCE.hasMouseMoved = false;				if (inst && inst.handleShortcut(e))					return false;				inst._fixRootBlocks();				if (inst.settings.remove_trailing_nbsp)					inst._fixTrailingNbsp();				if (e.target.editorId)					tinyMCE.instances[e.target.editorId].select();				if (tinyMCE.selectedInstance)					tinyMCE.selectedInstance.switchSettings();				inst = tinyMCE.selectedInstance;				// Handle backspace				if (tinyMCE.isGecko && tinyMCE.settings.force_p_newlines && (e.keyCode == 8 || e.keyCode == 46) && !e.shiftKey) {					// Insert P element instead of BR					if (TinyMCE_ForceParagraphs._handleBackSpace(tinyMCE.selectedInstance, e.type)) {						// Cancel event						tinyMCE.execCommand("mceAddUndoLevel");						e.preventDefault();						return false;					}				}				tinyMCE.selectedElement = null;				tinyMCE.selectedNode = null;				elm = tinyMCE.selectedInstance.getFocusElement();				tinyMCE.linkElement = tinyMCE.getParentElement(elm, "a");				tinyMCE.imgElement = tinyMCE.getParentElement(elm, "img");				tinyMCE.selectedElement = elm;				// Update visualaids on tabs				if (tinyMCE.isGecko && e.type == "keyup" && e.keyCode == 9)					tinyMCE.handleVisualAid(tinyMCE.selectedInstance.getBody(), true, tinyMCE.settings.visual, tinyMCE.selectedInstance);				// Fix empty elements on return/enter, check where enter occured				if (tinyMCE.isIE && e.type == "keydown" && e.keyCode == 13)					tinyMCE.enterKeyElement = tinyMCE.selectedInstance.getFocusElement();				// Fix empty elements on return/enter				if (tinyMCE.isIE && e.type == "keyup" && e.keyCode == 13) {					elm = tinyMCE.enterKeyElement;					if (elm) {						var re = new RegExp('^HR|IMG|BR$','g'); // Skip these						var dre = new RegExp('^H[1-6]$','g'); // Add double on these						if (!elm.hasChildNodes() && !re.test(elm.nodeName)) {							if (dre.test(elm.nodeName))								elm.innerHTML = "&nbsp;&nbsp;";							else								elm.innerHTML = "&nbsp;";						}					}				}				// Check if it's a position key				keys = tinyMCE.posKeyCodes;				var posKey = false;				for (i=0; i<keys.length; i++) {					if (keys[i] == e.keyCode) {						posKey = true;						break;					}				}				// MSIE custom key handling				if (tinyMCE.isIE && tinyMCE.settings.custom_undo_redo) {					keys = [8, 46]; // Backspace,Delete					for (i=0; i<keys.length; i++) {						if (keys[i] == e.keyCode) {							if (e.type == "keyup")								tinyMCE.triggerNodeChange(false);						}					}				}				// If Ctrl key				if (e.keyCode == 17)					return true;				// Handle Undo/Redo when typing content				if (tinyMCE.isGecko) {					// Start typing (not a position key or ctrl key, but ctrl+x and ctrl+p is ok)					if (!posKey && e.type == "keyup" && !e.ctrlKey || (e.ctrlKey && (e.keyCode == 86 || e.keyCode == 88)))						tinyMCE.execCommand("mceStartTyping");				} else {					// IE seems to be working better with this setting					if (!posKey && e.type == "keyup")						tinyMCE.execCommand("mceStartTyping");				}				// Store undo bookmark				if (e.type == "keydown" && (posKey || e.ctrlKey) && inst)					inst.undoBookmark = inst.selection.getBookmark();				// End typing (position key) or some Ctrl event				if (e.type == "keyup" && (posKey || e.ctrlKey))					tinyMCE.execCommand("mceEndTyping");				if (posKey && e.type == "keyup")					tinyMCE.triggerNodeChange(false);				if (tinyMCE.isIE && e.ctrlKey)					window.setTimeout('tinyMCE.triggerNodeChange(false);', 1);			break;			case "mousedown":			case "mouseup":			case "click":			case "dblclick":			case "focus":				tinyMCE.hideMenus();				if (tinyMCE.selectedInstance) {					tinyMCE.selectedInstance.switchSettings();					tinyMCE.selectedInstance.isFocused = true;				}				// Check instance event trigged on				var targetBody = tinyMCE.getParentElement(e.target, "html");				for (var instanceName in tinyMCE.instances) {					if (!tinyMCE.isInstance(tinyMCE.instances[instanceName]))						continue;					inst = tinyMCE.instances[instanceName];					// Reset design mode if lost (on everything just in case)					inst.autoResetDesignMode();					// Use HTML element since users might click outside of body element					if (inst.getBody().parentNode == targetBody) {						inst.select();						tinyMCE.selectedElement = e.target;						tinyMCE.linkElement = tinyMCE.getParentElement(tinyMCE.selectedElement, "a");						tinyMCE.imgElement = tinyMCE.getParentElement(tinyMCE.selectedElement, "img");						break;					}				}				// Add first bookmark location				if (!tinyMCE.selectedInstance.undoRedo.undoLevels[0].bookmark && (e.type == "mouseup" || e.type == "dblclick"))					tinyMCE.selectedInstance.undoRedo.undoLevels[0].bookmark = tinyMCE.selectedInstance.selection.getBookmark();				// Reset selected node				if (e.type != "focus")					tinyMCE.selectedNode = null;				tinyMCE.triggerNodeChange(false);				tinyMCE.execCommand("mceEndTyping");				if (e.type == "mouseup")					tinyMCE.execCommand("mceAddUndoLevel");				// Just in case				if (!tinyMCE.selectedInstance && e.target.editorId)					tinyMCE.instances[e.target.editorId].select();				return false;		}	},	getButtonHTML : function(id, lang, img, cmd, ui, val) {		var h = '', m, x, io = '';		cmd = 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + cmd + '\'';		if (typeof(ui) != "undefined" && ui != null)			cmd += ',' + ui;		if (typeof(val) != "undefined" && val != null)			cmd += ",'" + val + "'";		cmd += ');';		// Patch for IE7 bug with hover out not restoring correctly		if (tinyMCE.isRealIE)			io = 'onmouseover="tinyMCE.lastHover = this;"';		// Use tilemaps when enabled and found and never in MSIE since it loads the tile each time from cache if cahce is disabled		if (tinyMCE.getParam('button_tile_map') && (!tinyMCE.isIE || tinyMCE.isOpera) && (m = this.buttonMap[id]) != null && (tinyMCE.getParam("language") == "en" || img.indexOf('$lang') == -1)) {			// Tiled button			x = 0 - (m * 20) == 0 ? '0' : 0 - (m * 20);			h += '<a id="{$editor_id}_' + id + '" href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" ' + io + ' class="mceTiledButton mceButtonNormal" target="_self">';			h += '<img src="{$themeurl}/images/spacer.gif" style="background-position: ' + x + 'px 0" alt="{$'+lang+'}" title="{$' + lang + '}" />';			h += '</a>';		} else {			// Normal button			h += '<a id="{$editor_id}_' + id + '" href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" ' + io + ' class="mceButtonNormal" target="_self">';			h += '<img src="' + img + '" alt="{$'+lang+'}" title="{$' + lang + '}" />';			h += '</a>';		}		return h;	},	getMenuButtonHTML : function(id, lang, img, mcmd, cmd, ui, val) {		var h = '', m, x;		mcmd = 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + mcmd + '\');';		cmd = 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + cmd + '\'';		if (typeof(ui) != "undefined" && ui != null)			cmd += ',' + ui;		if (typeof(val) != "undefined" && val != null)			cmd += ",'" + val + "'";		cmd += ');';		// Use tilemaps when enabled and found and never in MSIE since it loads the tile each time from cache if cahce is disabled		if (tinyMCE.getParam('button_tile_map') && (!tinyMCE.isIE || tinyMCE.isOpera) && (m = tinyMCE.buttonMap[id]) != null && (tinyMCE.getParam("language") == "en" || img.indexOf('$lang') == -1)) {			x = 0 - (m * 20) == 0 ? '0' : 0 - (m * 20);			if (tinyMCE.isRealIE)				h += '<span id="{$editor_id}_' + id + '" class="mceMenuButton" onmouseover="tinyMCE._menuButtonEvent(\'over\',this);tinyMCE.lastHover = this;" onmouseout="tinyMCE._menuButtonEvent(\'out\',this);">';			else				h += '<span id="{$editor_id}_' + id + '" class="mceMenuButton">';			h += '<a href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" class="mceTiledButton mceMenuButtonNormal" target="_self">';			h += '<img src="{$themeurl}/images/spacer.gif" style="width: 20px; height: 20px; background-position: ' + x + 'px 0" title="{$' + lang + '}" /></a>';			h += '<a href="javascript:' + mcmd + '" onclick="' + mcmd + 'return false;" onmousedown="return false;"><img src="{$themeurl}/images/button_menu.gif" title="{$' + lang + '}" class="mceMenuButton" />';			h += '</a></span>';		} else {			if (tinyMCE.isRealIE)				h += '<span id="{$editor_id}_' + id + '" dir="ltr" class="mceMenuButton" onmouseover="tinyMCE._menuButtonEvent(\'over\',this);tinyMCE.lastHover = this;" onmouseout="tinyMCE._menuButtonEvent(\'out\',this);">';			else				h += '<span id="{$editor_id}_' + id + '" dir="ltr" class="mceMenuButton">';			h += '<a href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" class="mceMenuButtonNormal" target="_self">';			h += '<img src="' + img + '" title="{$' + lang + '}" /></a>';			h += '<a href="javascript:' + mcmd + '" onclick="' + mcmd + 'return false;" onmousedown="return false;"><img src="{$themeurl}/images/button_menu.gif" title="{$' + lang + '}" class="mceMenuButton" />';			h += '</a></span>';		}		return h;	},	_menuButtonEvent : function(e, o) {		if (o.className == 'mceMenuButtonFocus')			return;		if (e == 'over')			o.className = o.className + ' mceMenuHover';		else			o.className = o.className.replace(/\s.*$/, '');	},	addButtonMap : function(m) {		var i, a = m.replace(/\s+/, '').split(',');		for (i=0; i<a.length; i++)			this.buttonMap[a[i]] = i;	},	formSubmit : function(f, p) {		var n, inst, found = false;		if (f.form)			f = f.form;		// Is it a form that has a TinyMCE instance		if (tinyMCE.getParam('save_on_tinymce_forms')) {			for (n in tinyMCE.instances) {				inst = tinyMCE.instances[n];				if (!tinyMCE.isInstance(inst))					continue;				if (inst.formElement) {					if (f == inst.formElement.form) {						found = true;						inst.isNotDirty = true;					}				}			}		} else			found  = true;		// Is valid		if (found) {			tinyMCE.removeTinyMCEFormElements(f);			tinyMCE.triggerSave();		}		// Is it patched		if (f.mceOldSubmit && p)			f.mceOldSubmit();	},	submitPatch : function() {		tinyMCE.formSubmit(this, true);	},	onLoad : function() {		var r, i, c, mode, trigger, elements, element, settings, elementId, elm;		var selector, deselector, elementRefAr, form;		// Wait for everything to be loaded first		if (tinyMCE.settings.strict_loading_mode && this.loadingIndex != -1) {			window.setTimeout('tinyMCE.onLoad();', 1);			return;		}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -