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

📄 tiny_mce_src.js

📁 Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发
💻 JS
📖 第 1 页 / 共 5 页
字号:
/* file:jscripts/tiny_mce/classes/TinyMCE_Engine.class.js */function TinyMCE_Engine() {	var ua;	this.majorVersion = "2";	this.minorVersion = "1.2";	this.releaseDate = "2007-08-21";	this.instances = [];	this.switchClassCache = [];	this.windowArgs = [];	this.loadedFiles = [];	this.pendingFiles = [];	this.loadingIndex = 0;	this.configs = [];	this.currentConfig = 0;	this.eventHandlers = [];	this.log = [];	this.undoLevels = [];	this.undoIndex = 0;	this.typingUndoIndex = -1;	this.settings = [];	// Browser check	ua = navigator.userAgent;	this.isMSIE = (navigator.appName == "Microsoft Internet Explorer");	this.isMSIE5 = this.isMSIE && (ua.indexOf('MSIE 5') != -1);	this.isMSIE5_0 = this.isMSIE && (ua.indexOf('MSIE 5.0') != -1);	this.isMSIE7 = this.isMSIE && (ua.indexOf('MSIE 7') != -1);	this.isGecko = ua.indexOf('Gecko') != -1; // Will also be true on Safari	this.isSafari = ua.indexOf('Safari') != -1;	this.isOpera = window['opera'] && opera.buildNumber ? true : false;	this.isMac = ua.indexOf('Mac') != -1;	this.isNS7 = ua.indexOf('Netscape/7') != -1;	this.isNS71 = ua.indexOf('Netscape/7.1') != -1;	this.dialogCounter = 0;	this.plugins = [];	this.themes = [];	this.menus = [];	this.loadedPlugins = [];	this.buttonMap = [];	this.isLoaded = false;	// Fake MSIE on Opera and if Opera fakes IE, Gecko or Safari cancel those	if (this.isOpera) {		this.isMSIE = true;		this.isGecko = false;		this.isSafari =  false;	}	this.isIE = this.isMSIE;	this.isRealIE = this.isMSIE && !this.isOpera;	// TinyMCE editor id instance counter	this.idCounter = 0;};TinyMCE_Engine.prototype = {	init : function(settings) {		var theme, nl, baseHREF = "", i, cssPath, entities, h, p, src, elements = [], head;		// IE 5.0x is no longer supported since 5.5, 6.0 and 7.0 now exists. We can't support old browsers forever, sorry.		if (this.isMSIE5_0)			return;		this.settings = settings;		// Check if valid browser has execcommand support		if (typeof(document.execCommand) == 'undefined')			return;		// Get script base path		if (!tinyMCE.baseURL) {			// Search through head			head = document.getElementsByTagName('head')[0];			if (head) {				for (i=0, nl = head.getElementsByTagName('script'); i<nl.length; i++)					elements.push(nl[i]);			}			// Search through rest of document			for (i=0, nl = document.getElementsByTagName('script'); i<nl.length; i++)				elements.push(nl[i]);			// If base element found, add that infront of baseURL			nl = document.getElementsByTagName('base');			for (i=0; i<nl.length; i++) {				if (nl[i].href)					baseHREF = nl[i].href;			}			for (i=0; i<elements.length; i++) {				if (elements[i].src && (elements[i].src.indexOf("tiny_mce.js") != -1 || elements[i].src.indexOf("tiny_mce_dev.js") != -1 || elements[i].src.indexOf("tiny_mce_src.js") != -1 || elements[i].src.indexOf("tiny_mce_gzip") != -1)) {					src = elements[i].src;					tinyMCE.srcMode = (src.indexOf('_src') != -1 || src.indexOf('_dev') != -1) ? '_src' : '';					tinyMCE.gzipMode = src.indexOf('_gzip') != -1;					src = src.substring(0, src.lastIndexOf('/'));					if (settings.exec_mode == "src" || settings.exec_mode == "normal")						tinyMCE.srcMode = settings.exec_mode == "src" ? '_src' : '';					// Force it absolute if page has a base href					if (baseHREF !== '' && src.indexOf('://') == -1)						tinyMCE.baseURL = baseHREF + src;					else						tinyMCE.baseURL = src;					break;				}			}		}		// Get document base path		this.documentBasePath = document.location.href;		if (this.documentBasePath.indexOf('?') != -1)			this.documentBasePath = this.documentBasePath.substring(0, this.documentBasePath.indexOf('?'));		this.documentURL = this.documentBasePath;		this.documentBasePath = this.documentBasePath.substring(0, this.documentBasePath.lastIndexOf('/'));		// If not HTTP absolute		if (tinyMCE.baseURL.indexOf('://') == -1 && tinyMCE.baseURL.charAt(0) != '/') {			// If site absolute			tinyMCE.baseURL = this.documentBasePath + "/" + tinyMCE.baseURL;		}		// Set default values on settings		this._def("mode", "none");		this._def("theme", "advanced");		this._def("plugins", "", true);		this._def("language", "en");		this._def("docs_language", this.settings.language);		this._def("elements", "");		this._def("textarea_trigger", "mce_editable");		this._def("editor_selector", "");		this._def("editor_deselector", "mceNoEditor");		this._def("valid_elements", "+a[id|style|rel|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],-strike[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|style],-ul[class|style],-li[class|style],br,img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align],-sub[style|class],-sup[style|class],-blockquote[dir|style],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor|scope],-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],-span[style|class|align],-pre[class|align|style],address[class|align|style],-h1[id|style|dir|class|align],-h2[id|style|dir|class|align],-h3[id|style|dir|class|align],-h4[id|style|dir|class|align],-h5[id|style|dir|class|align],-h6[id|style|dir|class|align],hr[class|style],-font[face|size|style|id|class|dir|color],dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang],cite[title|id|class|style|dir|lang],abbr[title|id|class|style|dir|lang],acronym[title|id|class|style|dir|lang],del[title|id|class|style|dir|lang|datetime|cite],ins[title|id|class|style|dir|lang|datetime|cite]");		this._def("extended_valid_elements", "");		this._def("invalid_elements", "");		this._def("encoding", "");		this._def("urlconverter_callback", tinyMCE.getParam("urlconvertor_callback", "TinyMCE_Engine.prototype.convertURL"));		this._def("save_callback", "");		this._def("force_br_newlines", false);		this._def("force_p_newlines", true);		this._def("add_form_submit_trigger", true);		this._def("relative_urls", true);		this._def("remove_script_host", true);		this._def("focus_alert", true);		this._def("document_base_url", this.documentURL);		this._def("visual", true);		this._def("visual_table_class", "mceVisualAid");		this._def("setupcontent_callback", "");		this._def("fix_content_duplication", true);		this._def("custom_undo_redo", true);		this._def("custom_undo_redo_levels", -1);		this._def("custom_undo_redo_keyboard_shortcuts", true);		this._def("custom_undo_redo_restore_selection", true);		this._def("custom_undo_redo_global", false);		this._def("verify_html", true);		this._def("apply_source_formatting", false);		this._def("directionality", "ltr");		this._def("cleanup_on_startup", false);		this._def("inline_styles", false);		this._def("convert_newlines_to_brs", false);		this._def("auto_reset_designmode", true);		this._def("entities", "39,#39,160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,34,quot,38,amp,60,lt,62,gt,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro", true);		this._def("entity_encoding", "named");		this._def("cleanup_callback", "");		this._def("add_unload_trigger", true);		this._def("ask", false);		this._def("nowrap", false);		this._def("auto_resize", false);		this._def("auto_focus", false);		this._def("cleanup", true);		this._def("remove_linebreaks", true);		this._def("button_tile_map", false);		this._def("submit_patch", true);		this._def("browsers", "msie,safari,gecko,opera", true);		this._def("dialog_type", "window");		this._def("accessibility_warnings", true);		this._def("accessibility_focus", true);		this._def("merge_styles_invalid_parents", "");		this._def("force_hex_style_colors", true);		this._def("trim_span_elements", true);		this._def("convert_fonts_to_spans", false);		this._def("doctype", '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">');		this._def("font_size_classes", '');		this._def("font_size_style_values", 'xx-small,x-small,small,medium,large,x-large,xx-large', true);		this._def("event_elements", 'a,img', true);		this._def("convert_urls", true);		this._def("table_inline_editing", false);		this._def("object_resizing", true);		this._def("custom_shortcuts", true);		this._def("convert_on_click", false);		this._def("content_css", '');		this._def("fix_list_elements", true);		this._def("fix_table_elements", false);		this._def("strict_loading_mode", document.contentType == 'application/xhtml+xml');		this._def("hidden_tab_class", '');		this._def("display_tab_class", '');		this._def("gecko_spellcheck", false);		this._def("hide_selects_on_submit", true);		this._def("forced_root_block", false);		this._def("remove_trailing_nbsp", false);		this._def("save_on_tinymce_forms", false);		// Force strict loading mode to false on non Gecko browsers		if (this.isMSIE && !this.isOpera)			this.settings.strict_loading_mode = false;		// Browser check IE		if (this.isMSIE && this.settings.browsers.indexOf('msie') == -1)			return;		// Browser check Gecko		if (this.isGecko && this.settings.browsers.indexOf('gecko') == -1)			return;		// Browser check Safari		if (this.isSafari && this.settings.browsers.indexOf('safari') == -1)			return;		// Browser check Opera		if (this.isOpera && this.settings.browsers.indexOf('opera') == -1)			return;		// If not super absolute make it so		baseHREF = tinyMCE.settings.document_base_url;		h = document.location.href;		p = h.indexOf('://');		if (p > 0 && document.location.protocol != "file:") {			p = h.indexOf('/', p + 3);			h = h.substring(0, p);			if (baseHREF.indexOf('://') == -1)				baseHREF = h + baseHREF;			tinyMCE.settings.document_base_url = baseHREF;			tinyMCE.settings.document_base_prefix = h;		}		// Trim away query part		if (baseHREF.indexOf('?') != -1)			baseHREF = baseHREF.substring(0, baseHREF.indexOf('?'));		this.settings.base_href = baseHREF.substring(0, baseHREF.lastIndexOf('/')) + "/";		theme = this.settings.theme;		this.inlineStrict = 'A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment';		this.inlineTransitional = 'A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment';		this.blockElms = 'H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP';		this.blockRegExp = new RegExp("^(" + this.blockElms + ")$", "i");		this.posKeyCodes = [13,45,36,35,33,34,37,38,39,40];		this.uniqueURL = 'javascript:void(091039730);'; // Make unique URL non real URL		this.uniqueTag = '<div id="mceTMPElement" style="display: none">TMP</div>';		this.callbacks = ['onInit', 'getInfo', 'getEditorTemplate', 'setupContent', 'onChange', 'onPageLoad', 'handleNodeChange', 'initInstance', 'execCommand', 'getControlHTML', 'handleEvent', 'cleanup', 'removeInstance'];		// Theme url		this.settings.theme_href = tinyMCE.baseURL + "/themes/" + theme;		if (!tinyMCE.isIE || tinyMCE.isOpera)			this.settings.force_br_newlines = false;		if (tinyMCE.getParam("popups_css", false)) {			cssPath = tinyMCE.getParam("popups_css", "");			// Is relative			if (cssPath.indexOf('://') == -1 && cssPath.charAt(0) != '/')				this.settings.popups_css = this.documentBasePath + "/" + cssPath;			else				this.settings.popups_css = cssPath;		} else			this.settings.popups_css = tinyMCE.baseURL + "/themes/" + theme + "/css/editor_popup.css";		if (tinyMCE.getParam("editor_css", false)) {			cssPath = tinyMCE.getParam("editor_css", "");			// Is relative			if (cssPath.indexOf('://') == -1 && cssPath.charAt(0) != '/')				this.settings.editor_css = this.documentBasePath + "/" + cssPath;			else				this.settings.editor_css = cssPath;		} else {			if (this.settings.editor_css !== '')				this.settings.editor_css = tinyMCE.baseURL + "/themes/" + theme + "/css/editor_ui.css";		}		// Only do this once		if (this.configs.length == 0) {			if (typeof(TinyMCECompressed) == "undefined") {				tinyMCE.addEvent(window, "DOMContentLoaded", TinyMCE_Engine.prototype.onLoad);				if (tinyMCE.isRealIE) {					if (document.body)						tinyMCE.addEvent(document.body, "readystatechange", TinyMCE_Engine.prototype.onLoad);					else						tinyMCE.addEvent(document, "readystatechange", TinyMCE_Engine.prototype.onLoad);				}				tinyMCE.addEvent(window, "load", TinyMCE_Engine.prototype.onLoad);				tinyMCE._addUnloadEvents();			}		}		this.loadScript(tinyMCE.baseURL + '/themes/' + this.settings.theme + '/editor_template' + tinyMCE.srcMode + '.js');		this.loadScript(tinyMCE.baseURL + '/langs/' + this.settings.language +  '.js');		this.loadCSS(this.settings.editor_css);		// Add plugins		p = tinyMCE.getParam('plugins', '', true, ',');		if (p.length > 0) {			for (i=0; i<p.length; i++) {				if (p[i].charAt(0) != '-')					this.loadScript(tinyMCE.baseURL + '/plugins/' + p[i] + '/editor_plugin' + tinyMCE.srcMode + '.js');			}		}		// Setup entities		if (tinyMCE.getParam('entity_encoding') == 'named') {			settings.cleanup_entities = [];			entities = tinyMCE.getParam('entities', '', true, ',');			for (i=0; i<entities.length; i+=2)				settings.cleanup_entities['c' + entities[i]] = entities[i+1];		}		// Save away this config		settings.index = this.configs.length;		this.configs[this.configs.length] = settings;		// Start loading first one in chain		this.loadNextScript();		// Force flicker free CSS backgrounds in IE		if (this.isIE && !this.isOpera) {			try {				document.execCommand('BackgroundImageCache', false, true);			} catch (e) {				// Ignore			}		}		// Setup XML encoding regexps		this.xmlEncodeRe = new RegExp('[<>&"]', 'g');	},	_addUnloadEvents : function() {		var st = tinyMCE.settings.add_unload_trigger;		if (tinyMCE.isIE) {			if (st) {				tinyMCE.addEvent(window, "unload", TinyMCE_Engine.prototype.unloadHandler);				tinyMCE.addEvent(window.document, "beforeunload", TinyMCE_Engine.prototype.unloadHandler);			}		} else {			if (st)				tinyMCE.addEvent(window, "unload", function () {tinyMCE.triggerSave(true, true);});		}	},	_def : function(key, def_val, t) {		var v = tinyMCE.getParam(key, def_val);		v = t ? v.replace(/\s+/g, "") : v;		this.settings[key] = v;	},	hasPlugin : function(n) {		return typeof(this.plugins[n]) != "undefined" && this.plugins[n] != null;	},	addPlugin : function(n, p) {		var op = this.plugins[n];		// Use the previous plugin object base URL used when loading external plugins		p.baseURL = op ? op.baseURL : tinyMCE.baseURL + "/plugins/" + n;		this.plugins[n] = p;		this.loadNextScript();	},	setPluginBaseURL : function(n, u) {		var op = this.plugins[n];		if (op)			op.baseURL = u;		else			this.plugins[n] = {baseURL : u};	},	loadPlugin : function(n, u) {		u = u.indexOf('.js') != -1 ? u.substring(0, u.lastIndexOf('/')) : u;

⌨️ 快捷键说明

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