1

テキスト編集中に特別なオートコンプリートを提供する etherpad プラグインに取り組んでいます。このためには、ユーザーのキャレットがどこにあるかを知る必要があります。ただし、適切なフックが見つからなかったため、ユーザーがマウスクリックでキャレットを移動するかどうかはわかりません。

この問題を解決する最初のステップとして、マウス クリック イベントをキャッチしたいと思います。(クリックイベントをキャッチできたとしても、キャレットの位置を見つける方法はまだわかりませんが、少なくともそれをいつ処理するかはわかります。)助けていただければ幸いです。

4

1 に答える 1

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);
}
于 2015-06-12T08:51:51.317 に答える