我怎样才能让coordsChar返回正确的位置?

时间:2016-07-09 03:04:15

标签: codemirror

我正在尝试使用coordsChar来获取编辑器中单击的位置,以便我可以使用它来调用getTokenAt并检测单击了哪个单词。

(我正在做的事与以下问题中描述的几乎相同 [codemirror - detect and create links inside editor 并遵循答案中给出的建议。)

不幸的是,无论我在哪里点击,coordsChar总是返回文档结尾的位置。我认为这与它总是说“外面:真实”这一事实有关。

如何让coordsChar返回正确的位置?

这就是我所拥有的......

    function onClick (e) {
         if(e.target.className === "cm-myStyle") { 
            //get coords of mouse event
            var x = e.windowX;
            var y = e.windowY;
            var coords = {x,y};

            var loc = editor.coordsChar(coords);

            //this always prints the same location (at the end of the doc)
            console.log(loc);
   }

1 个答案:

答案 0 :(得分:1)

更新 - 让它发挥作用。

新代码:

 function onClick (e) {
     if(e.target.className === "cm-myStyle") { 
        var x = e.pageX;
        var y = e.pageY;
        var coords = {left: x, top: y};

        var loc = editor.coordsChar(coords);
}

我意识到我需要包括left:和top:在coords对象中。另外,将windowX和windowY更改为pageX和pageY。