2010-04-09 79 views
8

我想定位元素在選定文本上方。但我無法弄清楚座標。我如何使用JavaScript獲取HTML中選定文本的座標document.getSelecttion()

var sel = document.getSelection(); 
    if(sel != null) { 
    positionDiv(); 
} 

實施例:(圖像)

alt text http://www.freeimagehosting.net/uploads/bf4035f29f.png

+0

請張貼特定答案的代碼。 – 2010-04-09 04:49:31

+0

好的。更新了更多細節。 – priyank 2010-04-09 06:01:58

+1

可能的重複:http://stackoverflow.com/questions/1589721/how-can-i-position-an-element-next-to-user-text-selection – 2010-04-09 09:21:31

回答

3

這裏的基本思想。您在選擇的開頭插入虛擬元素並獲取該虛擬html元素的座標。然後你刪除它。

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); 
+1

謝謝你一個... – priyank 2010-04-09 06:29:47

+0

你不止歡迎。 – 2010-04-09 06:30:32

+0

getBoxObjectFor適用於IE嗎? – priyank 2010-04-09 06:36:46

相關問題