📄 overview-summary-tinymce_control.class.js.html
字号:
<span class="comment">// Is centered</span>
var div = tinyMCE.getParentElement(focusElm, <span class="literal">"div"</span>);
<span class="reserved">if</span> (div && div.style.textAlign == <span class="literal">"center"</span>) {
<span class="comment">// Remove div</span>
<span class="reserved">if</span> (div.nodeName == <span class="literal">"DIV"</span> && div.childNodes.length == 1 && div.parentNode)
div.parentNode.replaceChild(img, div);
} <span class="reserved">else</span> {
<span class="comment">// Add div</span>
var div = <span class="reserved">this</span>.getDoc().createElement(<span class="literal">"div"</span>);
div.style.textAlign = <span class="literal">'center'</span>;
div.appendChild(img);
focusElm.parentNode.replaceChild(div, focusElm);
}
<span class="reserved">this</span>.selection.selectNode(img);
<span class="reserved">this</span>.repaint();
tinyMCE.triggerNodeChange();
<span class="reserved">return</span>;
case <span class="literal">"JustifyRight"</span>:
<span class="reserved">if</span> (align == <span class="literal">'right'</span>)
img.removeAttribute(<span class="literal">'align'</span>);
<span class="reserved">else</span>
img.setAttribute(<span class="literal">'align'</span>, <span class="literal">'right'</span>);
<span class="comment">// Remove the div</span>
var div = focusElm.parentNode;
<span class="reserved">if</span> (div && div.nodeName == <span class="literal">"DIV"</span> && div.childNodes.length == 1 && div.parentNode)
div.parentNode.replaceChild(img, div);
<span class="reserved">this</span>.selection.selectNode(img);
<span class="reserved">this</span>.repaint();
tinyMCE.triggerNodeChange();
<span class="reserved">return</span>;
}
}
<span class="reserved">if</span> (tinyMCE.settings[<span class="literal">'force_br_newlines'</span>]) {
var alignValue = <span class="literal">""</span>;
<span class="reserved">if</span> (doc.selection.type != <span class="literal">"Control"</span>) {
switch (command) {
case <span class="literal">"JustifyLeft"</span>:
alignValue = <span class="literal">"left"</span>;
break;
case <span class="literal">"JustifyCenter"</span>:
alignValue = <span class="literal">"center"</span>;
break;
case <span class="literal">"JustifyFull"</span>:
alignValue = <span class="literal">"justify"</span>;
break;
case <span class="literal">"JustifyRight"</span>:
alignValue = <span class="literal">"right"</span>;
break;
}
<span class="reserved">if</span> (alignValue != <span class="literal">""</span>) {
var rng = doc.selection.createRange();
<span class="reserved">if</span> ((divElm = tinyMCE.getParentElement(rng.parentElement(), <span class="literal">"div"</span>)) != null)
divElm.setAttribute(<span class="literal">"align"</span>, alignValue);
<span class="reserved">else</span> <span class="reserved">if</span> (rng.pasteHTML && rng.htmlText.length > 0)
rng.pasteHTML(<span class="literal">'<div align="'</span> + alignValue + <span class="literal">'">'</span> + rng.htmlText + <span class="literal">"</div>"</span>);
tinyMCE.triggerNodeChange();
<span class="reserved">return</span>;
}
}
}
switch (command) {
case <span class="literal">"mceRepaint"</span>:
<span class="reserved">this</span>.repaint();
<span class="reserved">return</span> true;
case <span class="literal">"InsertUnorderedList"</span>:
case <span class="literal">"InsertOrderedList"</span>:
var tag = (command == <span class="literal">"InsertUnorderedList"</span>) ? <span class="literal">"ul"</span> : <span class="literal">"ol"</span>;
<span class="reserved">if</span> (tinyMCE.isSafari)
<span class="reserved">this</span>.execCommand(<span class="literal">"mceInsertContent"</span>, false, <span class="literal">"<"</span> + tag + <span class="literal">"><li>&nbsp;</li><"</span> + tag + <span class="literal">">"</span>);
<span class="reserved">else</span>
<span class="reserved">this</span>.getDoc().execCommand(command, user_interface, value);
tinyMCE.triggerNodeChange();
break;
case <span class="literal">"Strikethrough"</span>:
<span class="reserved">if</span> (tinyMCE.isSafari)
<span class="reserved">this</span>.execCommand(<span class="literal">"mceInsertContent"</span>, false, <span class="literal">"<strike>"</span> + <span class="reserved">this</span>.selection.getSelectedHTML() + <span class="literal">"</strike>"</span>);
<span class="reserved">else</span>
<span class="reserved">this</span>.getDoc().execCommand(command, user_interface, value);
tinyMCE.triggerNodeChange();
break;
case <span class="literal">"mceSelectNode"</span>:
<span class="reserved">this</span>.selection.selectNode(value);
tinyMCE.triggerNodeChange();
tinyMCE.selectedNode = value;
break;
case <span class="literal">"FormatBlock"</span>:
<span class="reserved">if</span> (value == null || value == <span class="literal">""</span>) {
var elm = tinyMCE.getParentElement(<span class="reserved">this</span>.getFocusElement(), <span class="literal">"p,div,h1,h2,h3,h4,h5,h6,pre,address"</span>);
<span class="reserved">if</span> (elm)
<span class="reserved">this</span>.execCommand(<span class="literal">"mceRemoveNode"</span>, false, elm);
} <span class="reserved">else</span> {
<span class="reserved">if</span> (value == <span class="literal">'<div>'</span> && tinyMCE.isGecko)
value = <span class="literal">'div'</span>;
<span class="reserved">this</span>.getDoc().execCommand(<span class="literal">"FormatBlock"</span>, false, value);
}
tinyMCE.triggerNodeChange();
break;
case <span class="literal">"mceRemoveNode"</span>:
<span class="reserved">if</span> (!value)
value = tinyMCE.getParentElement(<span class="reserved">this</span>.getFocusElement());
<span class="reserved">if</span> (tinyMCE.isMSIE) {
value.outerHTML = value.innerHTML;
} <span class="reserved">else</span> {
var rng = value.ownerDocument.createRange();
rng.setStartBefore(value);
rng.setEndAfter(value);
rng.deleteContents();
rng.insertNode(rng.createContextualFragment(value.innerHTML));
}
tinyMCE.triggerNodeChange();
break;
case <span class="literal">"mceSelectNodeDepth"</span>:
var parentNode = <span class="reserved">this</span>.getFocusElement();
<span class="reserved">for</span> (var i=0; parentNode; i++) {
<span class="reserved">if</span> (parentNode.nodeName.toLowerCase() == <span class="literal">"body"</span>)
break;
<span class="reserved">if</span> (parentNode.nodeName.toLowerCase() == <span class="literal">"#text"</span>) {
i--;
parentNode = parentNode.parentNode;
continue;
}
<span class="reserved">if</span> (i == value) {
<span class="reserved">this</span>.selection.selectNode(parentNode, false);
tinyMCE.triggerNodeChange();
tinyMCE.selectedNode = parentNode;
<span class="reserved">return</span>;
}
parentNode = parentNode.parentNode;
}
break;
case <span class="literal">"SetStyleInfo"</span>:
var rng = <span class="reserved">this</span>.getRng();
var sel = <span class="reserved">this</span>.getSel();
var scmd = value[<span class="literal">'command'</span>];
var sname = value[<span class="literal">'name'</span>];
var svalue = value[<span class="literal">'value'</span>] == null ? <span class="literal">''</span> : value[<span class="literal">'value'</span>];
<span class="comment">//var svalue = value['value'] == null ? '' : value['value'];</span>
var wrapper = value[<span class="literal">'wrapper'</span>] ? value[<span class="literal">'wrapper'</span>] : <span class="literal">"span"</span>;
var parentElm = null;
var invalidRe = new RegExp(<span class="literal">"^BODY|HTML$"</span>, <span class="literal">"g"</span>);
var invalidParentsRe = tinyMCE.settings[<span class="literal">'merge_styles_invalid_parents'</span>] != <span class="literal">''</span> ? new RegExp(tinyMCE.settings[<span class="literal">'merge_styles_invalid_parents'</span>], <span class="literal">"gi"</span>) : null;
<span class="comment">// Whole element selected check</span>
<span class="reserved">if</span> (tinyMCE.isMSIE) {
<span class="comment">// Control range</span>
<span class="reserved">if</span> (rng.item)
parentElm = rng.item(0);
<span class="reserved">else</span> {
var pelm = rng.parentElement();
var prng = doc.selection.createRange();
prng.moveToElementText(pelm);
<span class="reserved">if</span> (rng.htmlText == prng.htmlText || rng.boundingWidth == 0) {
<span class="reserved">if</span> (invalidParentsRe == null || !invalidParentsRe.test(pelm.nodeName))
parentElm = pelm;
}
}
} <span class="reserved">else</span> {
var felm = <span class="reserved">this</span>.getFocusElement();
<span class="reserved">if</span> (sel.isCollapsed || (/td|tr|tbody|table/ig.test(felm.nodeName) && sel.anchorNode == felm.parentNode))
parentElm = felm;
}
<span class="comment">// Whole element selected</span>
<span class="reserved">if</span> (parentElm && !invalidRe.test(parentElm.nodeName)) {
<span class="reserved">if</span> (scmd == <span class="literal">"setstyle"</span>)
tinyMCE.setStyleAttrib(parentElm, sname, svalue);
<span class="reserved">if</span> (scmd == <span class="literal">"setattrib"</span>)
tinyMCE.setAttrib(parentElm, sname, svalue);
<span class="reserved">if</span> (scmd == <span class="literal">"removeformat"</span>) {
parentElm.style.cssText = <span class="literal">''</span>;
tinyMCE.setAttrib(parentElm, <span class="literal">'class'</span>, <span class="literal">''</span>);
}
<span class="comment">// Remove style/attribs from all children</span>
var ch = tinyMCE.getNodeTree(parentElm, new Array(), 1);
<span class="reserved">for</span> (var z=0; z<ch.length; z++) {
<span class="reserved">if</span> (ch[z] == parentElm)
continue;
<span class="reserved">if</span> (scmd == <span class="literal">"setstyle"</span>)
tinyMCE.setStyleAttrib(ch[z], sname, <span class="literal">''</span>);
<span class="reserved">if</span> (scmd == <span class="literal">"setattrib"</span>)
tinyMCE.setAttrib(ch[z], sname, <span class="literal">''</span>);
<span class="reserved">if</span> (scmd == <span class="literal">"removeformat"</span>) {
ch[z].style.cssText = <span class="literal">''</span>;
tinyMCE.setAttrib(ch[z], <span class="literal">'class'</span>, <span class="literal">''</span>);
}
}
} <span class="reserved">else</span> {
doc.execCommand(<span class="literal">"fontname"</span>, false, <span class="literal">"#mce_temp_font#"</span>);
var elementArray = tinyMCE.getElementsByAttributeValue(<span class="reserved">this</span>.getBody(), <span class="literal">"font"</span>, <span class="literal">"face"</span>, <span class="literal">"#mce_temp_font#"</span>);
<span class="comment">// Change them all</span>
<span class="reserved">for</span> (var x=0; x<elementArray.length; x++) {
elm = elementArray[x];
<span class="reserved">if</span> (elm) {
var spanElm = doc.createElement(wrapper);
<span class="reserved">if</span> (scmd == <span class="literal">"setstyle"</span>)
tinyMCE.setStyleAttrib(spanElm, sname, svalue);
<span class="reserved">if</span> (scmd == <span class="literal">"setattrib"</span>)
tinyMCE.setAttrib(spanElm, sname, svalue);
<span class="reserved">if</span> (scmd == <span class="literal">"removeformat"</span>) {
spanElm.style.cssText = <span class="literal">''</span>;
tinyMCE.setAttrib(spanElm, <span class="literal">'class'</span>, <span class="literal">''</span>);
}
<span class="reserved">if</span> (elm.hasChildNodes()) {
<span class="reserved">for</span> (var i=0; i<elm.childNodes.length; i++)
spanElm.appendChild(elm.childNodes[i].cloneNode(true));
}
spanElm.setAttribute(<span class="literal">"mce_new"</span>, <span class="literal">"true"</span>);
elm.parentNode.replaceChild(spanElm, elm);
<span class="comment">// Remove style/attribs from all children</span>
var ch = tinyMCE.getNodeTree(spanElm, new Array(), 1);
<span class="reserved">for</span> (var z=0; z<ch.length; z++) {
<span class="reserved">if</span> (ch[z] == spanElm)
continue;
<span class="reserved">if</span> (scmd == <span class="literal">"setstyle"</span>)
tinyMCE.setStyleAttrib(ch[z], sname, <span class="literal">''</span>);
<span class="reserved">if</span> (scmd == <span class="literal">"setattrib"</span>)
tinyMCE.setAttrib(ch[z], sname, <span class="literal">''</span>);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -