内联ckeditor和按键事件

时间:2013-12-10 08:08:52

标签: javascript ckeditor inline

我使用内联Ckeditor来编辑内容。我想将keypress事件绑定到div i edit。我的意思是,当我改变div的内容时,我需要一个会触发的事件。 这是我如何做到这一点的一个例子

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
     <script src="http://cdnjs.cloudflare.com/ajax/libs/ckeditor/4.2/ckeditor.js"></script>
</head>
<body>
<div id="ckediv" contenteditable="true">Editing with CKEDITOR</div>
<br>  
 <script type='text/javascript'>
$( "#ckediv" ).keypress(function() {
     alert('cke key pressed');
     });

</script>
</body>
</html>

问题是当我按keypressie键时,chromeenter不会触发delete。如果我使用contenteditable =“true”创建一个div但没有Ckeditor,那么该事件运行良好。 这是一个jsfiddle代码,显示它现在如何工作http://jsfiddle.net/uAc7c/4/。我不知道为什么,但由于某种原因,这个jsfiddle(keypress事件)在ie中不起作用。当我使用上述源进行本地测试时,它可以工作。 这里有一个没有Ckeditor的jsfiddle,它显示了它应该如何工作http://jsfiddle.net/mPM4J/4/

1 个答案:

答案 0 :(得分:0)

JQuery Documentation说:

  

注意:由于任何官方规范都未涵盖按键事件,因此使用它时遇到的实际行为可能因浏览器,浏览器版本和平台而异。

所以我猜IE和Chrome是两个不受支持的浏览器。

因此请尝试使用keyup事件,如下所示:

$( "#ckediv" ).keyup(function() {
     alert('cke key pressed');
     });

有关详细信息,请参阅此处: KeyUp Documentation in the JQuery API