📄 tiny_mce_src.js
字号:
continue;
url = tinyMCE.replaceVar(url, name, escape(args[name]));
}
if (html) {
html = tinyMCE.replaceVar(html, "css", this.settings['popups_css']);
html = tinyMCE.applyTemplate(html, args);
var win = window.open("", "mcePopup" + new Date().getTime(), "top=" + y + ",left=" + x + ",scrollbars=" + scrollbars + ",dialog=yes,minimizable=" + resizable + ",modal=yes,width=" + width + ",height=" + height + ",resizable=" + resizable);
if (win == null) {
alert(tinyMCELang['lang_popup_blocked']);
return;
}
win.document.write(html);
win.document.close();
win.resizeTo(width, height);
win.focus();
} else {
if ((tinyMCE.isMSIE && !tinyMCE.isOpera) && resizable != 'yes' && tinyMCE.settings["dialog_type"] == "modal") {
height += 10;
var features = "resizable:" + resizable
+ ";scroll:"
+ scrollbars + ";status:yes;center:yes;help:no;dialogWidth:"
+ width + "px;dialogHeight:" + height + "px;";
window.showModalDialog(url, window, features);
} else {
var modal = (resizable == "yes") ? "no" : "yes";
if (tinyMCE.isGecko && tinyMCE.isMac)
modal = "no";
if (template['close_previous'] != "no")
try {tinyMCE.lastWindow.close();} catch (ex) {}
var win = window.open(url, "mcePopup" + new Date().getTime(), "top=" + y + ",left=" + x + ",scrollbars=" + scrollbars + ",dialog=" + modal + ",minimizable=" + resizable + ",modal=" + modal + ",width=" + width + ",height=" + height + ",resizable=" + resizable);
if (win == null) {
alert(tinyMCELang['lang_popup_blocked']);
return;
}
if (template['close_previous'] != "no")
tinyMCE.lastWindow = win;
eval('try { win.resizeTo(width, height); } catch(e) { }');
// Make it bigger if statusbar is forced
if (tinyMCE.isGecko) {
if (win.document.defaultView.statusbar.visible)
win.resizeBy(0, tinyMCE.isMac ? 10 : 24);
}
win.focus();
}
}
},
closeWindow : function(win) {
win.close();
},
getVisualAidClass : function(class_name, state) {
var aidClass = tinyMCE.settings['visual_table_class'];
if (typeof(state) == "undefined")
state = tinyMCE.settings['visual'];
// Split
var classNames = new Array();
var ar = class_name.split(' ');
for (var i=0; i<ar.length; i++) {
if (ar[i] == aidClass)
ar[i] = "";
if (ar[i] != "")
classNames[classNames.length] = ar[i];
}
if (state)
classNames[classNames.length] = aidClass;
// Glue
var className = "";
for (var i=0; i<classNames.length; i++) {
if (i > 0)
className += " ";
className += classNames[i];
}
return className;
},
handleVisualAid : function(el, deep, state, inst) {
if (!el)
return;
var tableElement = null;
switch (el.nodeName) {
case "TABLE":
var oldW = el.style.width;
var oldH = el.style.height;
var bo = tinyMCE.getAttrib(el, "border");
bo = bo == "" || bo == "0" ? true : false;
tinyMCE.setAttrib(el, "class", tinyMCE.getVisualAidClass(tinyMCE.getAttrib(el, "class"), state && bo));
el.style.width = oldW;
el.style.height = oldH;
for (var y=0; y<el.rows.length; y++) {
for (var x=0; x<el.rows[y].cells.length; x++) {
var cn = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(el.rows[y].cells[x], "class"), state && bo);
tinyMCE.setAttrib(el.rows[y].cells[x], "class", cn);
}
}
break;
case "A":
var anchorName = tinyMCE.getAttrib(el, "name");
if (anchorName != '' && state) {
el.title = anchorName;
el.className = 'mceItemAnchor';
} else if (anchorName != '' && !state)
el.className = '';
break;
}
if (deep && el.hasChildNodes()) {
for (var i=0; i<el.childNodes.length; i++)
tinyMCE.handleVisualAid(el.childNodes[i], deep, state, inst);
}
},
/*
applyClassesToFonts : function(doc, size) {
var f = doc.getElementsByTagName("font");
for (var i=0; i<f.length; i++) {
var s = tinyMCE.getAttrib(f[i], "size");
if (s != "")
tinyMCE.setAttrib(f[i], 'class', "mceItemFont" + s);
}
if (typeof(size) != "undefined") {
var css = "";
for (var x=0; x<doc.styleSheets.length; x++) {
for (var i=0; i<doc.styleSheets[x].rules.length; i++) {
if (doc.styleSheets[x].rules[i].selectorText == '#mceSpanFonts .mceItemFont' + size) {
css = doc.styleSheets[x].rules[i].style.cssText;
break;
}
}
if (css != "")
break;
}
if (doc.styleSheets[0].rules[0].selectorText == "FONT")
doc.styleSheets[0].removeRule(0);
doc.styleSheets[0].addRule("FONT", css, 0);
}
},
*/
fixGeckoBaseHREFBug : function(m, e, h) {
var nl, i;
if (tinyMCE.isGecko) {
if (m == 1) {
h = h.replace(/\ssrc=/gi, " xsrc=");
h = h.replace(/\shref=/gi, " xhref=");
return h;
} else {
var el = new Array('a','img','select','area','iframe','base','input','script','embed','object','link');
for (var a=0; a<el.length; a++) {
var n = e.getElementsByTagName(el[a]);
for (i=0; i<n.length; i++) {
var xsrc = tinyMCE.getAttrib(n[i], "xsrc");
var xhref = tinyMCE.getAttrib(n[i], "xhref");
if (xsrc != "") {
n[i].src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], xsrc);
n[i].removeAttribute("xsrc");
}
if (xhref != "") {
n[i].href = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], xhref);
n[i].removeAttribute("xhref");
}
}
}
}
}
return h;
},
_setHTML : function(doc, html_content) {
// Force closed anchors open
//html_content = html_content.replace(new RegExp('<a(.*?)/>', 'gi'), '<a$1></a>');
html_content = tinyMCE.cleanupHTMLCode(html_content);
// Try innerHTML if it fails use pasteHTML in MSIE
try {
tinyMCE.setInnerHTML(doc.body, html_content);
} catch (e) {
if (this.isMSIE)
doc.body.createTextRange().pasteHTML(html_content);
}
// Content duplication bug fix
if (tinyMCE.isMSIE && tinyMCE.settings['fix_content_duplication']) {
// Remove P elements in P elements
var paras = doc.getElementsByTagName("P");
for (var i=0; i<paras.length; i++) {
var node = paras[i];
while ((node = node.parentNode) != null) {
if (node.nodeName == "P")
node.outerHTML = node.innerHTML;
}
}
// Content duplication bug fix (Seems to be word crap)
var html = doc.body.innerHTML;
/*
if (html.indexOf('="mso') != -1) {
for (var i=0; i<doc.body.all.length; i++) {
var el = doc.body.all[i];
el.removeAttribute("className","",0);
el.removeAttribute("style","",0);
}
html = doc.body.innerHTML;
html = tinyMCE.regexpReplace(html, "<o:p><\/o:p>", "<br />");
html = tinyMCE.regexpReplace(html, "<o:p> <\/o:p>", "");
html = tinyMCE.regexpReplace(html, "<st1:.*?>", "");
html = tinyMCE.regexpReplace(html, "<p><\/p>", "");
html = tinyMCE.regexpReplace(html, "<p><\/p>\r\n<p><\/p>", "");
html = tinyMCE.regexpReplace(html, "<p> <\/p>", "<br />");
html = tinyMCE.regexpReplace(html, "<p>\s*(<p>\s*)?", "<p>");
html = tinyMCE.regexpReplace(html, "<\/p>\s*(<\/p>\s*)?", "</p>");
}*/
// Always set the htmlText output
tinyMCE.setInnerHTML(doc.body, html);
}
tinyMCE.cleanupAnchors(doc);
if (tinyMCE.getParam("convert_fonts_to_spans"))
tinyMCE.convertSpansToFonts(doc);
},
getEditorId : function(form_element) {
var inst = this.getInstanceById(form_element);
if (!inst)
return null;
return inst.editorId;
},
getInstanceById : function(editor_id) {
var inst = this.instances[editor_id];
if (!inst) {
for (var n in tinyMCE.instances) {
var instance = tinyMCE.instances[n];
if (!tinyMCE.isInstance(instance))
continue;
if (instance.formTargetElementId == editor_id) {
inst = instance;
break;
}
}
}
return inst;
},
queryInstanceCommandValue : function(editor_id, command) {
var inst = tinyMCE.getInstanceById(editor_id);
if (inst)
return inst.queryCommandValue(command);
return false;
},
queryInstanceCommandState : function(editor_id, command) {
var inst = tinyMCE.getInstanceById(editor_id);
if (inst)
return inst.queryCommandState(command);
return null;
},
setWindowArg : function(n, v) {
this.windowArgs[n] = v;
},
getWindowArg : function(n, d) {
return (typeof(this.windowArgs[n]) == "undefined") ? d : this.windowArgs[n];
},
getCSSClasses : function(editor_id, doc) {
var output = new Array();
// Is cached, use that
if (typeof(tinyMCE.cssClasses) != "undefined")
return tinyMCE.cssClasses;
if (typeof(editor_id) == "undefined" && typeof(doc) == "undefined") {
var instance;
for (var instanceName in tinyMCE.instances) {
instance = tinyMCE.instances[instanceName];
if (!tinyMCE.isInstance(instance))
continue;
break;
}
doc = instance.getDoc();
}
if (typeof(doc) == "undefined") {
var instance = tinyMCE.getInstanceById(editor_id);
doc = instance.getDoc();
}
if (doc) {
var styles = tinyMCE.isMSIE ? doc.styleSheets : doc.styleSheets;
if (styles && styles.length > 0) {
for (var x=0; x<styles.length; x++) {
var csses = null;
// Just ignore any errors
eval("try {var csses = tinyMCE.isMSIE ? doc.styleSheets(" + x + ").rules : doc.styleSheets[" + x + "].cssRules;} catch(e) {}");
if (!csses)
return new Array();
for (var i=0; i<csses.length; i++) {
var selectorText = csses[i].selectorText;
// Can be multiple rules per selector
if (selectorText) {
var rules = selectorText.split(',');
for (var c=0; c<rules.length; c++) {
// Invalid rule
if (rules[c].indexOf(' ') != -1 || rules[c].indexOf(':') != -1 || rules[c].indexOf('mceItem') != -1)
continue;
if (rules[c] == "." + tinyMCE.settings['visual_table_class'] || rules[c].indexOf('mceEditable') != -1 || rules[c].indexOf('mceNonEditable') != -1)
continue;
// Is class rule
if (rules[c].indexOf('.') != -1) {
//alert(rules[c].substring(rules[c].indexOf('.')));
output[output.length] = rules[c].substring(rules[c].indexOf('.')+1);
}
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -