主题: 请管理员或高手帮我看看,下面的按照例子写的代码为什么不能响应输入时的事件。
作者: inthefly, 发布日期: 2009-12-31 15:45:50, 浏览数: 7027
以下是我按照kingeditor的例子写的一个测试,但是在输入字符时却不能响应事件,请各位前辈指点一下。



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>KindEditor</title>
    <style type="text/css" rel="stylesheet">
      .editor {
      margin-top: 5px;
      margin-bottom: 5px;
      }
    </style>
    <script type="text/javascript" charset="utf-8" src="./../kindeditor.js"></script>
    <script type="text/javascript">
      KE.init({
          id : 'content1',
          cssPath : './index.css',
  newlineTag : 'br',
          items : [
        'fontname', 'fontsize', 'textcolor', 'bgcolor', 'bold', 'italic', 'underline',
        'removeformat', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist',
        'insertunorderedlist', 'emoticons', 'image', 'link']
      });
      KE.event.ready(function(){
                KE.create('content1');
                //可视化模式下输入文字时
                KE.event.input(KE.g['content1'].iframeDoc, function(){
                    alert('ok');
                });
            });
      KE.event.add(window, 'load', function() {
          KE.create('content1');
          KE.plugin['fullscreen'].click('content1');
      });
function SetData()
{
     KE.util.setData('content1');
}
function clearEditor(id) {
          KE.g[id].iframeDoc.open();
          KE.g[id].iframeDoc.write(KE.util.getFullHtml(id));
          KE.g[id].iframeDoc.close();
          KE.g[id].newTextarea.value = '';
      }
function insertHtml(id, html) {
 clearEditor(id);
          KE.util.focus(id);
          KE.util.selection(id);
          KE.util.insertHtml(id, html);
      }
    </script>
  </head>
  <body>
    <h3>全屏模式</h3>
    <div class="editor">
      <textarea id="content1" name="content" style="width:700px;height:300px;visibility:hidden;"></textarea>
    </div>
  </body>
</html>

作者: Roddy, 发布日期: 2009-12-31 15:56:57
为什么创建2次?不要2次调用KE.create,都放在KE.event.ready里就可以了。
KE.event.ready(function(){
KE.create('content1');
KE.plugin['fullscreen'].click('content1');
//可视化模式下输入文字时
KE.event.input(KE.g['content1'].iframeDoc, function(){
alert('ok');
});
});

回复
作者: inthefly, 发布日期: 2009-12-31 16:43:54
非常感谢,因为还不是非常熟悉API函数!

不过写在一起后,还是不能在输入的时候弹出alert提示框。

是不是在全屏的模式下,输入事件不能响应??这是一个BUG吧?



回复
作者: Roddy, 发布日期: 2009-12-31 17:27:41
添加事件需要放在afterCreate回调函数里,否则全屏以后将失效事件,因为编辑器全屏时重新创建DOM。
KE.init({
    id : 'content1',
    afterCreate : function() {
        //可视化模式下输入文字时
        KE.event.input(KE.g['content1'].iframeDoc, function(){
            alert('ok');
        });
    }
});
KE.event.ready(function(){
    KE.create('content1');
    KE.plugin['fullscreen'].click('content1');
});


回复
发表新帖 发表回复