我的ckeditor附带了模糊功能,如此
editor = CKEDITOR.instances.fck;
editor.on("blur",function(e){
alert("hello");
});
你和我在一起吗?
现在,当我点击flash按钮时,编辑器会模糊并导致显示警报。
如何阻止这种情况发生,并且仍然会在其他时间出现警报,例如当用户离开编辑区时
再次感谢
答案 0 :(得分:6)
只要我们正在处理黑客攻击,这就是我喜欢用来解决这个问题的方法。关键是CKE使用iFrames进行下拉类型控件(颜色选择器和背景颜色,字体大小,字体类型)
editor.on("blur", function(e) {
if ($(document.activeElement).get(0).tagName.toLowerCase() != "iframe") {
// your code here for "real" blur event
}
});
答案 1 :(得分:0)
当出现对话框时,单击向上点击后的闪光按钮时会触发模糊事件。您想要的模糊事件发生在编辑器外部鼠标下方后。这很脏,但通过跟踪鼠标状态,您可以实现目标。
$(function() {
var mouseState = 0;
$(document).mousedown(function(){ mouseState = 1; });
$(document).mouseup( function(){ mouseState = 0; });
var editor = CKEDITOR.instances.editor1;
editor.on("blur", function(e) {
if (mouseState == 1) console.log("blur");
});
});
答案 2 :(得分:0)
我现在也遇到了这个问题。
我的解决方案是将编辑器包装在一个持有者中,让我们称之为id =“holder”,并绑定此事件:
var isMouseOverEditor = false;
$('#holder').hover(function(){
isMouseOverEditor = (e.type=='mouseenter' ? true : false);
});
稍后在编辑器的on blur事件中:
editor.on("blur", function(e) {
if (!isMouseOverEditor) return;
// your code here for "real" blur event
});
这不是最好的解决方案,但它是一个很好的解决方法,可以使用。似乎编辑器的模糊事件与编辑器本身绑定在一起。这意味着当编辑区域模糊时,事件被触发。
希望这可以帮助任何人解决这个问题。