我目前正在编写一个js脚本,可以更改某些样式,以便在使用触摸设备时隐藏固定页脚并绝对定位页眉。
我已经能够使用普通的文本输入字段和textareas成功实现它,但由于CKEditor没有在DOM中解析为textarea,我被迫使用它的focusManager类当用户关注我站点中的实例时触发更改
问题是我之前从未使用过CKEditor的API,而且在做了一些研究后我在使用它的focusManager类时遇到了一些问题。
以下是我目前的剧本
它适用于textareas和文本输入,但不适用于CKEditor
根据我的理解,您在哪里看到" cke_1",这是编辑器的实例名称,但它无效。
此外,我在我的网站上有多个CKEditor实例,它需要处理所有这些实例
任何帮助将不胜感激
谢谢!
var focusManager = new CKEDITOR.focusManager(cke_1);
var editor = CKEDITOR.instances.cke_1;
$(document)
.on("focus", "input", function(e) {
$body.addClass('fix');
$('footer').hide();
})
.on("blur", "input", function(e) {
$body.removeClass('fix');
$('footer').show();
});
$(document).on("focus", "textarea", function(e){
$body.addClass('fix');
$('footer').hide();
})
.on("blur", "textarea", function(e){
$body.removeClass('fix');
$('footer').show();
});
$(document).on("focus", editor.focusManager, function(e){
$body.addClass('fix');
$('footer').hide();
})
.on("blur", editor.focusManager, function(e){
$body.removeClass('fix');
$('footer').show();
});
答案 0 :(得分:0)
您根本不需要使用focusManager
课程。只需听取editor#focus
和editor#blur
(JSFiddle):
// Set focus and blur listeners for all editors to be created.
CKEDITOR.on( 'instanceReady', function( evt ) {
var editor = evt.editor,
body = CKEDITOR.document.getBody();
editor.on( 'focus', function() {
// Use jQuery if you want.
body.addClass( 'fix' );
} );
editor.on( 'blur', function() {
// Use jQuery if you want.
body.removeClass( 'fix' );
} );
} );
CKEDITOR.replace( 'editor', {
plugins: 'wysiwygarea,sourcearea,basicstyles,toolbar',
on: {
// Focus and blur listeners can be set per-instance,
// if needed.
// focus: function() {},
// blur: function() {}
}
} );
答案 1 :(得分:0)
我得到了这个工作。由于我有多个ckeditor实例,我编写了一个在创建实例并且用户在移动设备上时调用的函数。我就这样做了:
function renderMobile(){
console.log("Mobile device detected");
// Set focus and blur listeners for all editors to be created.
CKEDITOR.on( 'instanceReady', function() {
var editor;
for(var i in CKEDITOR.instances) {
editor = CKEDITOR.instances[i];
}
var $body = CKEDITOR.document.getBody();
editor.on('focus', function() {
$body.addClass( 'fix' );
});
editor.on('blur', function() {
$body.removeClass( 'fix' );
});
});
}