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

📄 overview-summary-tinymce_control.class.js.html

📁 tinyMCE在线编辑器使用手册
💻 HTML
📖 第 1 页 / 共 5 页
字号:
					<span class="comment">// Is centered</span>
					var div = tinyMCE.getParentElement(focusElm, <span class="literal">"div"</span>);
					<span class="reserved">if</span> (div &amp;&amp; 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> &amp;&amp; div.childNodes.length == 1 &amp;&amp; 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 &amp;&amp; div.nodeName == <span class="literal">"DIV"</span> &amp;&amp; div.childNodes.length == 1 &amp;&amp; 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 &amp;&amp; rng.htmlText.length &gt; 0)
						rng.pasteHTML(<span class="literal">'&lt;div align="'</span> + alignValue + <span class="literal">'"&gt;'</span> + rng.htmlText + <span class="literal">"&lt;/div&gt;"</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">"&lt;"</span> + tag + <span class="literal">"&gt;&lt;li&gt;&amp;nbsp;&lt;/li&gt;&lt;"</span> + tag + <span class="literal">"&gt;"</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">"&lt;strike&gt;"</span> + <span class="reserved">this</span>.selection.getSelectedHTML() + <span class="literal">"&lt;/strike&gt;"</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">'&lt;div&gt;'</span> &amp;&amp; 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) &amp;&amp; sel.anchorNode == felm.parentNode))
						parentElm = felm;
				}

				<span class="comment">// Whole element selected</span>
				<span class="reserved">if</span> (parentElm &amp;&amp; !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&lt;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&lt;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&lt;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&lt;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 + -