SalesSystemOnline/ckeditor_3.6/ckeditor/_source/plugins/stylesheetparser/plugin.js
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
/*
Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
/**
* @stylesheetParser plugin.
*/
(function()
{
// We want to extract only the elements with classes defined in the stylesheets:
function parseClasses( aRules, skipSelectors, validSelectors )
{
// aRules are just the different rules in the style sheets
// We want to merge them and them split them by commas, so we end up with only
// the selectors
var s = aRules.join(' ');
// Remove selectors splitting the elements, leave only the class selector (.)
s = s.replace( /(,|>|\+|~)/g, ' ' );
// Remove attribute selectors: table[border="0"]
s = s.replace( /\[[^\]]*/g, '' );
// Remove Ids: div#main
s = s.replace( /#[^\s]*/g, '' );
// Remove pseudo-selectors and pseudo-elements: :hover :nth-child(2n+1) ::before
s = s.replace( /\:{1,2}[^\s]*/g, '' );
s = s.replace( /\s+/g, ' ' );
var aSelectors = s.split( ' ' ),
aClasses = [];
for ( var i = 0; i < aSelectors.length ; i++ )
{
var selector = aSelectors[ i ];
if ( validSelectors.test( selector ) && !skipSelectors.test( selector ) )
{
// If we still don't know about this one, add it
if ( CKEDITOR.tools.indexOf( aClasses, selector ) == -1 )
aClasses.push( selector );
}
}
return aClasses;
}
function LoadStylesCSS( theDoc, skipSelectors, validSelectors )
{
var styles = [],
// It will hold all the rules of the applied stylesheets (except those internal to CKEditor)
aRules = [],
i;
for ( i = 0; i < theDoc.styleSheets.length; i++ )
{
var sheet = theDoc.styleSheets[ i ],
node = sheet.ownerNode || sheet.owningElement;
// Skip the internal stylesheets
后面还有 83 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。