01.code/LanweiUI/UEditor/_src/plugins/paragraph.js
(开头部分) 8KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
///import core
///commands 格式
///commandsName Paragraph
///commandsTitle 段落格式
/**
* 段落样式
* @function
* @name baidu.editor.execCommand
* @param {String} cmdName paragraph插入段落执行命令
* @param {String} style 标签值为:'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'
* @param {String} attrs 标签的属性
* @author zhanyi
*/
UE.plugins['paragraph'] = function() {
var me = this,
block = domUtils.isBlockElm,
notExchange = ['TD','LI','PRE'],
doParagraph = function(range,style,attrs,sourceCmdName){
var bookmark = range.createBookmark(),
filterFn = function( node ) {
return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' && !domUtils.isBookmarkNode(node) : !domUtils.isWhitespace( node )
},
para;
range.enlarge( true );
var bookmark2 = range.createBookmark(),
current = domUtils.getNextDomNode( bookmark2.start, false, filterFn ),
tmpRange = range.cloneRange(),
tmpNode;
while ( current && !(domUtils.getPosition( current, bookmark2.end ) & domUtils.POSITION_FOLLOWING) ) {
if ( current.nodeType == 3 || !block( current ) ) {
tmpRange.setStartBefore( current );
while ( current && current !== bookmark2.end && !block( current ) ) {
tmpNode = current;
current = domUtils.getNextDomNode( current, false, null, function( node ) {
return !block( node )
} );
}
tmpRange.setEndAfter( tmpNode );
para = range.document.createElement( style );
if(attrs){
domUtils.setAttributes(para,attrs);
if(sourceCmdName && sourceCmdName == 'customstyle' && attrs.style)
para.style.cssText = attrs.style;
}
para.appendChild( tmpRange.extractContents() );
//需要内容占位
if(domUtils.isEmptyNode(para)){
domUtils.fillChar(range.document,para);
}
tmpRange.insertNode( para );
var parent = para.parentNode;
//如果para上一级是一个block元素且不是body,td就删除它
if ( block( parent ) && !domUtils.isBody( para.parentNode ) && utils.indexOf(notExchange,parent.tagName)==-1) {
//存储dir,style
后面还有 122 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读 AI
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
