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

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

📁 tinyMCE在线编辑器使用手册
💻 HTML
📖 第 1 页 / 共 2 页
字号:
			<span class="reserved">if</span> (node == body || node.nodeType == 9 || tinyMCE.isBlockElement(node))
				break;

			endChop = node;
		} <span class="reserved">while</span> ((node = node.nextSibling ? node.nextSibling : node.parentNode));

		<span class="comment">// Fix when only a image is within the TD</span>
		<span class="reserved">if</span> (startChop.nodeName == <span class="literal">"TD"</span>)
			startChop = startChop.firstChild;

		<span class="reserved">if</span> (endChop.nodeName == <span class="literal">"TD"</span>)
			endChop = endChop.lastChild;

		<span class="comment">// If not in a block element</span>
		<span class="reserved">if</span> (startBlock == null) {
			<span class="comment">// Delete selection</span>
			rng.deleteContents();
			sel.removeAllRanges();

			<span class="reserved">if</span> (startChop != rootElm &amp;&amp; endChop != rootElm) {
				<span class="comment">// Insert paragraph before</span>
				rngBefore = rng.cloneRange();

				<span class="reserved">if</span> (startChop == body)
					rngBefore.setStart(startChop, 0);
				<span class="reserved">else</span>
					rngBefore.setStartBefore(startChop);

				paraBefore.appendChild(rngBefore.cloneContents());

				<span class="comment">// Insert paragraph after</span>
				<span class="reserved">if</span> (endChop.parentNode.nodeName == blockName)
					endChop = endChop.parentNode;

				<span class="comment">// If not after image</span>
				<span class="comment">//if (rng.startContainer.nodeName != "BODY" &amp;&amp; rng.endContainer.nodeName != "BODY")</span>
					rng.setEndAfter(endChop);

				<span class="reserved">if</span> (endChop.nodeName != <span class="literal">"#text"</span> &amp;&amp; endChop.nodeName != <span class="literal">"BODY"</span>)
					rngBefore.setEndAfter(endChop);

				var contents = rng.cloneContents();
				<span class="reserved">if</span> (contents.firstChild &amp;&amp; (contents.firstChild.nodeName == blockName || contents.firstChild.nodeName == <span class="literal">"BODY"</span>))
					paraAfter.innerHTML = contents.firstChild.innerHTML;
				<span class="reserved">else</span>
					paraAfter.appendChild(contents);

				<span class="comment">// Check if it's a empty paragraph</span>
				<span class="reserved">if</span> (isEmpty(paraBefore))
					paraBefore.innerHTML = <span class="literal">"&amp;nbsp;"</span>;

				<span class="comment">// Check if it's a empty paragraph</span>
				<span class="reserved">if</span> (isEmpty(paraAfter))
					paraAfter.innerHTML = <span class="literal">"&amp;nbsp;"</span>;

				<span class="comment">// Delete old contents</span>
				rng.deleteContents();
				rngAfter.deleteContents();
				rngBefore.deleteContents();

				<span class="comment">// Insert new paragraphs</span>
				paraAfter.normalize();
				rngBefore.insertNode(paraAfter);
				paraBefore.normalize();
				rngBefore.insertNode(paraBefore);

				<span class="comment">// tinyMCE.debug("1: ", paraBefore.innerHTML, paraAfter.innerHTML);</span>
			} <span class="reserved">else</span> {
				body.innerHTML = <span class="literal">"&lt;"</span> + blockName + <span class="literal">"&gt;&amp;nbsp;&lt;/"</span> + blockName + <span class="literal">"&gt;&lt;"</span> + blockName + <span class="literal">"&gt;&amp;nbsp;&lt;/"</span> + blockName + <span class="literal">"&gt;"</span>;
				paraAfter = body.childNodes[1];
			}

			inst.selection.selectNode(paraAfter, true, true);

			<span class="reserved">return</span> true;
		}

		<span class="comment">// Place first part within new paragraph</span>
		<span class="reserved">if</span> (startChop.nodeName == blockName)
			rngBefore.setStart(startChop, 0);
		<span class="reserved">else</span>
			rngBefore.setStartBefore(startChop);

		rngBefore.setEnd(startNode, startOffset);
		paraBefore.appendChild(rngBefore.cloneContents());

		<span class="comment">// Place secound part within new paragraph</span>
		rngAfter.setEndAfter(endChop);
		rngAfter.setStart(endNode, endOffset);
		var contents = rngAfter.cloneContents();

		<span class="reserved">if</span> (contents.firstChild &amp;&amp; contents.firstChild.nodeName == blockName) {
	<span class="comment">/*		var nodes = contents.firstChild.childNodes;
			for (var i=0; i&lt;nodes.length; i++) {
				//tinyMCE.debug(nodes[i].nodeName);
				if (nodes[i].nodeName != "BODY")
					paraAfter.appendChild(nodes[i]);
			}
	*/</span>
			paraAfter.innerHTML = contents.firstChild.innerHTML;
		} <span class="reserved">else</span>
			paraAfter.appendChild(contents);

		<span class="comment">// Check if it's a empty paragraph</span>
		<span class="reserved">if</span> (isEmpty(paraBefore))
			paraBefore.innerHTML = <span class="literal">"&amp;nbsp;"</span>;

		<span class="comment">// Check if it's a empty paragraph</span>
		<span class="reserved">if</span> (isEmpty(paraAfter))
			paraAfter.innerHTML = <span class="literal">"&amp;nbsp;"</span>;

		<span class="comment">// Create a range around everything</span>
		var rng = doc.createRange();

		<span class="reserved">if</span> (!startChop.previousSibling &amp;&amp; startChop.parentNode.nodeName.toUpperCase() == blockName) {
			rng.setStartBefore(startChop.parentNode);
		} <span class="reserved">else</span> {
			<span class="reserved">if</span> (rngBefore.startContainer.nodeName.toUpperCase() == blockName &amp;&amp; rngBefore.startOffset == 0)
				rng.setStartBefore(rngBefore.startContainer);
			<span class="reserved">else</span>
				rng.setStart(rngBefore.startContainer, rngBefore.startOffset);
		}

		<span class="reserved">if</span> (!endChop.nextSibling &amp;&amp; endChop.parentNode.nodeName.toUpperCase() == blockName)
			rng.setEndAfter(endChop.parentNode);
		<span class="reserved">else</span>
			rng.setEnd(rngAfter.endContainer, rngAfter.endOffset);

		<span class="comment">// Delete all contents and insert new paragraphs</span>
		rng.deleteContents();
		rng.insertNode(paraAfter);
		rng.insertNode(paraBefore);
		<span class="comment">//tinyMCE.debug("2", paraBefore.innerHTML, paraAfter.innerHTML);</span>

		<span class="comment">// Normalize</span>
		paraAfter.normalize();
		paraBefore.normalize();

		inst.selection.selectNode(paraAfter, true, true);

		<span class="reserved">return</span> true;
	},

	<span class="comment">/**
	 * Handles the backspace action in Gecko. This will remove the weird BR element
	 * that gets generated when a user hits backspace in the beginning of a paragraph.
	 *
	 * <span class="attrib">@param</span> {TinyMCE_Control} inst TinyMCE editor control instance.
	 * <span class="attrib">@return</span> true/false if the event should be canceled or not.
	 * <span class="attrib">@type</span>
	 */</span>
	_handleBackSpace : <span class="reserved">function</span>(inst) {
		var r = inst.getRng();
		var sn = r.startContainer;

		<span class="reserved">if</span> (sn &amp;&amp; sn.nextSibling &amp;&amp; sn.nextSibling.nodeName == <span class="literal">"BR"</span>)
			sn.nextSibling.parentNode.removeChild(sn.nextSibling);

		<span class="reserved">return</span> false;
	}
};
</pre>
	<hr>



<!-- ========== START OF NAVBAR ========== -->
<a name="navbar_top"><!-- --></a>
<table border="0" width="100%" cellpadding="1" cellspacing="0">
<tr>
<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
<a name="navbar_top_firstrow"><!-- --></a>
<table border="0" cellpadding="0" cellspacing="3">
  <tr align="center" valign="top">
  
  
  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a>&nbsp;</td>
  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	&nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
  

  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
  </tr>
</table>
</td>
<td bgcolor="#EEEEFF" align="right" valign="top"><em>
<b></b></em>
</td>
</tr>

<tr>
<td bgcolor="white" class="NavBarCell2"><font size="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</font></td>
<td bgcolor="white" class="NavBarCell2"><font size="-2">
  <a href="index.html" target="_top"><b>FRAMES</b></a>  &nbsp;
&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
&nbsp;&nbsp;
<script>
  <!--
  if(window==top) {
    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
  }
  //-->
</script>
<noscript>
<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
</noscript>
</font></td>
</tr>
</table>
<!-- =========== END OF NAVBAR =========== -->

<hr>
<font size="-1">

</font>
<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Feb 13 16:28:04 2006</div>
</body>
</html>

⌨️ 快捷键说明

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