7

私の問題はこれに似ていますが、FirefoxのJavascriptで選択範囲の右側の座標を取得する方法が必要です。私は私が何を意味するかを示すために小さな例を作りました:

代替テキスト

他の投稿から取得したコードは次のとおりです。

var range = window.getSelection().getRangeAt(0);
var dummy = document.createElement("span");
range.insertNode(dummy);
var box = document.getBoxObjectFor(dummy);
var x = box.x, y = box.y;
dummy.parentNode.removeChild(dummy);

これにより、選択の開始の座標がわかります。選択範囲の最後の座標を取得する方法はありますか?

4

2 に答える 2

10

はい。そのビットは非常に単純ですcollapse(false)。選択から取得した範囲を呼び出す必要があります。これはMozillaから削除されたため、代わりにdocument.getBoxObjectFor()ダミー要素のメソッドが必要であることに注意してください。getBoundingClientRect()

var range = window.getSelection().getRangeAt(0);
range.collapse(false);
var dummy = document.createElement("span");
range.insertNode(dummy);
var rect = dummy.getBoundingClientRect();
var x = rect.left, y = rect.top;
dummy.parentNode.removeChild(dummy);
于 2010-09-22T08:51:17.233 に答える
0
var r = range.cloneRange();
r.collapse(false); // collapses range clone to end of original range
r.insertNode(dummy);
// document.getBoxObjectFor(dummy), etc.
于 2010-09-22T08:51:13.060 に答える