如何在Etherpad插件中捕获单击事件

时间:2015-06-12 07:46:53

标签: javascript etherpad

我正在开发一个在文本编辑过程中提供特殊自动完成功能的etherpad插件。为此,我需要知道用户的插入符号。但是我不知道用户是否用鼠标点击移动插入符,因为我找不到合适的钩子。

作为解决此问题的第一步,我想捕捉鼠标点击事件。 (如果我能抓住点击事件,我仍然不确定如何找出插入位置,但至少我知道何时处理它。)任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

从ep_tasklist插件 - https://raw.githubusercontent.com/JohnMcLear/ep_tasklist/master/static/js/ace_inner.js进行一些小修改,将其作为您要完成的工作的参考点。

将点击侦听器事件绑定到内部文档正文

exports.postAceInit = function(hook, context){
  context.ace.callWithAce(function(ace){
    var doc = ace.ace_getDocument();
    $(doc).find('#innerdocbody').on("click", underscore(SOMEFUNCTIONINCORRECTCONTEXT).bind(ace));
  }, 'myPlugin', true);
}

我认为你也需要保留ace的上下文,如果不是你不需要使用下划线绑定功能。 IE

exports.postAceInit = function(hook, context){
  context.ace.callWithAce(function(ace){
    var doc = ace.ace_getDocument();
    $(doc).find('#innerdocbody').on("click", function(){
       console.log("hello world")
    });
  }, 'myPlugin', true);
}