編輯:因爲你需要這一個FF擴展,你可以跳過所有功能的IE瀏覽器,你需要做的一切是這樣的:
window.getSelection().getRangeAt(0).commonAncestorContainer
更多範圍的信息:https://developer.mozilla.org/en/DOM/range
已經有類似的問題:
Get selected text and selected nodes on a page?
我修改的功能的位:
<script type="text/javascript">
function getTextSelection() {
if(document.selection)
return document.selection;
else if(window.getSelection)
return window.getSelection();
else if(document.getSelection)
return document.getSelection();
else
return false;
}
function getSelectionRange() {
var selection = getTextSelection();
if(selection.getRangeAt)
return selection.getRangeAt(0);
else if (selection.createRange)
return selection.createRange();
else
return false;
}
function getSelectionParent(r) {
if(r.parentElement)
return r.parentElement;
else if(r.commonAncestorContainer)
return r.commonAncestorContainer;
else
return false;
}
</script>
HTML:
<body>
<p><em>This is just some random text. </em><strong>Select me and then click the button!!!</strong></p>
<p><input type="button" value="Parent element?" onclick="alert('The selection\'s parent element is: ' + getSelectionParent(getSelectionRange()).nodeName);" /></p>
</body>
我在IE6,7和FF3.0測試這些東西。工作沒有任何問題。唯一必須注意的是,與FF不同的IE會忽略文本節點。
如果你想嘗試一下自己:http://dev.freedig.org/files/selection.html
我讀它,它只是給你選定的文本不是節點,我錯了嗎? – 2009-06-10 05:38:39