我正在尝试使用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);
}
答案 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。