📄 tiny_mce.js
字号:
for (var 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();
},
_addUnloadEvents : function() {
if (tinyMCE.isMSIE) {
if (tinyMCE.settings['add_unload_trigger']) {
tinyMCE.addEvent(window, "unload", TinyMCE_Engine.prototype.unloadHandler);
tinyMCE.addEvent(window.document, "beforeunload", TinyMCE_Engine.prototype.unloadHandler);
}
} else {
if (tinyMCE.settings['add_unload_trigger'])
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;
u = u.charAt(u.length-1) == '/' ? u.substring(0, u.length-1) : u;
this.plugins[n] = {baseURL : u};
this.loadScript(u + "/editor_plugin" + (tinyMCE.srcMode ? '_src' : '') + ".js");
},
hasTheme : function(n) {
return typeof(this.themes[n]) != "undefined" && this.themes[n] != null;
},
addTheme : function(n, t) {
this.themes[n] = t;
this.loadNextScript();
},
addMenu : function(n, m) {
this.menus[n] = m;
},
hasMenu : function(n) {
return typeof(this.plugins[n]) != "undefined" && this.plugins[n] != null;
},
loadScript : function(url) {
var i;
for (i=0; i<this.loadedFiles.length; i++) {
if (this.loadedFiles[i] == url)
return;
}
if (tinyMCE.settings.strict_loading_mode)
this.pendingFiles[this.pendingFiles.length] = url;
else
document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></script>');
this.loadedFiles[this.loadedFiles.length] = url;
},
loadNextScript : function() {
var d = document, se;
if (!tinyMCE.settings.strict_loading_mode)
return;
if (this.loadingIndex < this.pendingFiles.length) {
se = d.createElementNS('http://www.w3.org/1999/xhtml', 'script');
se.setAttribute('language', 'javascript');
se.setAttribute('type', 'text/javascript');
se.setAttribute('src', this.pendingFiles[this.loadingIndex++]);
d.getElementsByTagName("head")[0].appendChild(se);
} else
this.loadingIndex = -1; // Done with loading
},
loadCSS : function(url) {
var ar = url.replace(/\s+/, '').split(',');
var lflen = 0, csslen = 0;
var skip = false;
var x = 0, i = 0, nl, le;
for (x = 0,csslen = ar.length; x<csslen; x++) {
ignore_css = false;
if (ar[x] != null && ar[x] != 'null' && ar[x].length > 0) {
/* Make sure it doesn't exist. */
for (i=0, lflen=this.loadedFiles.length; i<lflen; i++) {
if (this.loadedFiles[i] == ar[x]) {
skip = true;
break;
}
}
if (!skip) {
if (tinyMCE.settings.strict_loading_mode) {
nl = document.getElementsByTagName("head");
le = document.createElement('link');
le.setAttribute('href', ar[x]);
le.setAttribute('rel', 'stylesheet');
le.setAttribute('type', 'text/css');
nl[0].appendChild(le);
} else
document.write('<link href="' + ar[x] + '" rel="stylesheet" type="text/css" />');
this.loadedFiles[this.loadedFiles.length] = ar[x];
}
}
}
},
importCSS : function(doc, css) {
var css_ary = css.replace(/\s+/, '').split(',');
var csslen, elm, headArr, x, css_file;
for (x = 0, csslen = css_ary.length; x<csslen; x++) {
css_file = css_ary[x];
if (css_file != null && css_file != 'null' && css_file.length > 0) {
// Is relative, make absolute
if (css_file.indexOf('://') == -1 && css_file.charAt(0) != '/')
css_file = this.documentBasePath + "/" + css_file;
if (typeof(doc.createStyleSheet) == "undefined") {
elm = doc.createElement("link");
elm.rel = "stylesheet";
elm.href = css_file;
if ((headArr = doc.getElementsByTagName("head")) != null && headArr.length > 0)
headArr[0].appendChild(elm);
} else
doc.createStyleSheet(css_file);
}
}
},
confirmAdd : function(e, settings) {
var elm = tinyMCE.isMSIE ? event.srcElement : e.target;
var elementId = elm.name ? elm.name : elm.id;
tinyMCE.settings = settings;
if (tinyMCE.settings['convert_on_click'] || (!elm.getAttribute('mce_noask') && confirm(tinyMCELang['lang_edit_confirm'])))
tinyMCE.addMCEControl(elm, elementId);
elm.setAttribute('mce_noask', 'true');
},
updateContent : function(form_element_name) {
// Find MCE instance linked to given form element and copy it's value
var formElement = document.getElementById(form_element_name);
for (var n in tinyMCE.instances) {
var inst = tinyMCE.instances[n];
if (!tinyMCE.isInstance(inst))
continue;
inst.switchSettings();
if (inst.formElement == formElement) {
var doc = inst.getDoc();
tinyMCE._setHTML(doc, inst.formElement.value);
if (!tinyMCE.isMSIE)
doc.body.innerHTML = tinyMCE._cleanupHTML(inst, doc, this.settings, doc.body, inst.visualAid);
}
}
},
addMCEControl : function(replace_element, form_element_name, target_document) {
var id = "mce_editor_" + tinyMCE.idCounter++;
var inst = new TinyMCE_Control(tinyMCE.settings);
inst.editorId = id;
this.instances[id] = inst;
inst._onAdd(replace_element, form_element_name, target_document);
},
removeMCEControl : function(editor_id) {
var inst = tinyMCE.getInstanceById(editor_id);
if (inst) {
inst.switchSettings();
editor_id = inst.editorId;
var html = tinyMCE.getContent(editor_id);
// Remove editor instance from instances array
var tmpInstances = new Array();
for (var instanceName in tinyMCE.instances) {
var instance = tinyMCE.instances[instanceName];
if (!tinyMCE.isInstance(instance))
continue;
if (instanceName != editor_id)
tmpInstances[instanceName] = instance;
}
tinyMCE.instances = tmpInstances;
tinyMCE.selectedElement = null;
tinyMCE.selectedInstance = null;
// Remove element
var replaceElement = document.getElementById(editor_id + "_parent");
var oldTargetElement = inst.oldTargetElement;
var targetName = oldTargetElement.nodeName.toLowerCase();
if (targetName == "textarea" || targetName == "input") {
// Just show the old text area
replaceElement.parentNode.removeChild(replaceElement);
oldTargetElement.style.display = "inline";
oldTargetElement.value = html;
} else {
oldTargetElement.innerHTML = html;
oldTargetElement.style.display = 'block';
replaceElement.parentNode.insertBefore(oldTargetElement, replaceElement);
replaceElement.parentNode.removeChild(replaceElement);
}
}
},
triggerSave : function(skip_cleanup, skip_callback) {
var inst, n;
// Default to false
if (typeof(skip_cleanup) == "undefined")
skip_cleanup = false;
// Default to false
if (typeof(skip_callback) == "undefined")
skip_callback = false;
// Cleanup and set all form fields
for (n in tinyMCE.instances) {
inst = tinyMCE.instances[n];
if (!tinyMCE.isInstance(inst))
continue;
inst.triggerSave(skip_cleanup, skip_callback);
}
},
resetForm : function(form_index) {
var i, inst, n, formObj = document.forms[form_index];
for (n in tinyMCE.instances) {
inst = tinyMCE.instances[n];
if (!tinyMCE.isInstance(inst))
continue;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -