2

CKEDITOR スタイル システムを使用しています。固有の属性を割り当てるスタイルを作成したいと考えています。

私が作成したスタイルを呼び出す単純なプラグインがあります。

     editor.addCommand( 'tag', {
            exec: function( editor ) {
               var randnumber = Math.floor((Math.random()*1000000000)+1);
               var mysqldatetime = new Date();

               CKEDITOR.config.tag = { element : 'span', attributes : { 'class': 'tag-'+randnumber, 'data-datetime' : mysqldatetime, 'data-tag': 'tag' } };

               var style = new CKEDITOR.style( editor.config.tag );

               editor.addCommand( 'tag', new CKEDITOR.styleCommand( style ) );
    }
});

ただし、日時と乱数は一度しか生成されません。コマンドが実行されるたびに計算される属性を取得するにはどうすればよいですか?

4

1 に答える 1

4

次のコード ( jsFiddle )を試してください。

CKEDITOR.replace( 'editor1', {
    plugins: 'wysiwygarea,sourcearea,toolbar,basicstyles,link',
    on: {
        pluginsLoaded: function() {
            var cmd = this.addCommand( 'tag', {
                canUndo: true,
                modes: { wysiwyg:1 },
                // Otherwise the editor will purge your custom stuff.
                allowedContent: 'span(*)[data-datetime,data-tag]{color}',
                exec: function( editor ) {
                    var randnumber = Math.floor( ( Math.random() * 1000000000 ) + 1 ),
                        mysqldatetime = new Date();

                    // Alway apply a different style.
                    editor.applyStyle( new CKEDITOR.style( {
                        element: 'span',
                        attributes: {
                            'class': 'tag-' + randnumber,
                            'data-datetime': mysqldatetime,
                            'data-tag': 'tag'
                        },
                        styles: {
                            color: 'red'
                        }
                    } ) );
                }
            } );

            // This is a custom command, so we need to register it.
            this.addFeature( cmd );
        }
    }
} );

Advanced Content Filter + editor.applyStyleに関する必読の情報。制限されたコンテンツ タイプのインスタンス内で使用される可能性がある場合は、コンテンツを定義することも検討してください。requiredContent

于 2013-08-19T21:10:19.197 に答える