ckeditor模糊和对话

时间:2010-04-08 15:19:08

标签: jquery ckeditor blur

我的ckeditor附带了模糊功能,如此

editor = CKEDITOR.instances.fck;
editor.on("blur",function(e){
    alert("hello");
});
你和我在一起吗?

现在,当我点击flash按钮时,编辑器会模糊并导致显示警报。

如何阻止这种情况发生,并且仍然会在其他时间出现警报,例如当用户离开编辑区时

再次感谢

3 个答案:

答案 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
});

这不是最好的解决方案,但它是一个很好的解决方法,可以使用。似乎编辑器的模糊事件与编辑器本身绑定在一起。这意味着当编辑区域模糊时,事件被触发。

希望这可以帮助任何人解决这个问题。