我希望能夠將當前鼠標位置轉換爲一個範圍,特別是在CKEditor中。JavaScript將鼠標位置轉換爲選擇範圍
的CKEditor的提供API,用於根據範圍設置光標:
var ranges = new CKEDITOR.dom.range(editor.document);
editor.getSelection().selectRanges([ ranges ]);
由於CKEditor的提供這個API,該問題可以通過去除此要求,只是找到一種方法,從生產的範圍被簡化鼠標在包含各種HTML元素的div上進行座標。
但是,這與將texlabrea中的鼠標座標轉換爲光標位置不同,因爲textareas具有固定的列寬和行高,CKEditor通過iframe呈現HTML。
根據this,它看起來像範圍可能應用於元素。
你如何找出最接近當前鼠標位置的開始/結束範圍?
編輯: 一個人如何使用ckeditor API來選擇mouseup事件範圍的例子。
editor.document.on('mouseup', function(e) {
this.focus();
var node = e.data.$.target;
var range = new CKEDITOR.dom.range(this.document);
range.setStart(new CKEDITOR.dom.node(node), 0);
range.collapse();
var ranges = [];
ranges.push(range);
this.getSelection().selectRanges(ranges);
});
與上述例子中的問題是,事件目標節點(e.data。$。目標)僅燒成諸如HTML,BODY,或IMG而不是文本節點的節點。即使是這樣,這些節點也代表了不支持將光標設置到該文本塊內鼠標位置的文本塊。