我尝试将div标签转换为可以在CKEditor中拖放的内容(如另一个问题中所述)。 如果某人切换 源视图和 WYSIWYG模式,我知道如何触发此事件吗?
谢谢,
-lony
答案 0 :(得分:5)
我认为这就是你要找的东西:
CKEDITOR.on('instanceCreated', function(e) {
e.editor.on('mode', function(e){
// Do your stuff here
alert(e.editor.mode);
});
});
答案 1 :(得分:0)
如果您的意思是,您想捕获源模式更改,那么您可以尝试这样的事情:
//add this to your CKeditor’s config.js
$('textarea.cke_source').live('keyup', function() {
$(this)
.closest('.cke_wrapper')
.parent()
.parent()
.prev()
.ckeditorGet()
.fire('change');
});
此讨论也可能有所帮助:ckEditor 希望它有所帮助
答案 2 :(得分:0)
我认为你应该写一个插件来为wysiwyg-view制作假元素。
Ckeditor能够识别需要用fake-elements
替换的元素。
我为你做了一个开始:
( function() {
CKEDITOR.plugins.add( 'myPlugin', {
requires : [ 'fakeobjects' ],
init: function( editor ) {
var me = this;
var pluginName = 'myPlugin';
editor.addCommand( pluginName, new CKEDITOR.dialogCommand( pluginName ) );
editor.addCss( // your custom css for your placeholder here
'div.myPluginElement' +
'{' +
'border: 1px solid #a9a9a9;' +
'width: 70px;' +
'height: 50px;' +
'}'
);
},
afterInit : function( editor ) {
var dataProcessor = editor.dataProcessor,
dataFilter = dataProcessor && dataProcessor.dataFilter;
if ( dataFilter ) {
dataFilter.addRules({
elements : {
div : function( element ) {
if (typeof element.attributes['class'] !== 'undefined' && element.attributes['class'].indexOf('myPluginElement') != -1)
return editor.createFakeParserElement( element, 'myPluginElement', 'div', false);
else return;
}
}
});
}
}
} );
})();
答案 3 :(得分:0)