📄 overview-summary-tinymce_forceparagraphs.class.js.html
字号:
<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 && 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" && rng.endContainer.nodeName != "BODY")</span>
rng.setEndAfter(endChop);
<span class="reserved">if</span> (endChop.nodeName != <span class="literal">"#text"</span> && endChop.nodeName != <span class="literal">"BODY"</span>)
rngBefore.setEndAfter(endChop);
var contents = rng.cloneContents();
<span class="reserved">if</span> (contents.firstChild && (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">"&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">"&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">"<"</span> + blockName + <span class="literal">">&nbsp;</"</span> + blockName + <span class="literal">"><"</span> + blockName + <span class="literal">">&nbsp;</"</span> + blockName + <span class="literal">">"</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 && contents.firstChild.nodeName == blockName) {
<span class="comment">/* var nodes = contents.firstChild.childNodes;
for (var i=0; i<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">"&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">"&nbsp;"</span>;
<span class="comment">// Create a range around everything</span>
var rng = doc.createRange();
<span class="reserved">if</span> (!startChop.previousSibling && startChop.parentNode.nodeName.toUpperCase() == blockName) {
rng.setStartBefore(startChop.parentNode);
} <span class="reserved">else</span> {
<span class="reserved">if</span> (rngBefore.startContainer.nodeName.toUpperCase() == blockName && 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 && 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 && sn.nextSibling && 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> </td>
<td bgcolor="#FFFFFF" class="NavBarCell1Rev"> <font class="NavBarFont1Rev"><b>File</b></font> </td>
<td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
<td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
<td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
<td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </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">
PREV
NEXT</font></td>
<td bgcolor="white" class="NavBarCell2"><font size="-2">
<a href="index.html" target="_top"><b>FRAMES</b></a>
<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
<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 + -