SalesSystemOnline/ckeditor_3.6/ckeditor/_source/plugins/wysiwygarea/plugin.js
(开头部分) 42KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
/*
Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
/**
* @fileOverview The "wysiwygarea" plugin. It registers the "wysiwyg" editing
* mode, which handles the main editing area space.
*/
(function()
{
// Matching an empty paragraph at the end of document.
var emptyParagraphRegexp = /(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi;
var notWhitespaceEval = CKEDITOR.dom.walker.whitespaces( true );
// Elements that could blink the cursor anchoring beside it, like hr, page-break. (#6554)
function nonEditable( element )
{
return element.isBlockBoundary() && CKEDITOR.dtd.$empty[ element.getName() ];
}
function onInsert( insertFunc )
{
return function( evt )
{
if ( this.mode == 'wysiwyg' )
{
this.focus();
this.fire( 'saveSnapshot' );
insertFunc.call( this, evt.data );
// Save snaps after the whole execution completed.
// This's a workaround for make DOM modification's happened after
// 'insertElement' to be included either, e.g. Form-based dialogs' 'commitContents'
// call.
CKEDITOR.tools.setTimeout( function()
{
this.fire( 'saveSnapshot' );
}, 0, this );
}
};
}
function doInsertHtml( data )
{
if ( this.dataProcessor )
data = this.dataProcessor.toHtml( data );
// HTML insertion only considers the first range.
var selection = this.getSelection(),
range = selection.getRanges()[ 0 ];
if ( range.checkReadOnly() )
return;
后面还有 1291 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。