我想獲取用戶突出顯示區域中的所有元素。問題是,當元素位於樹的不同部分時,我不知道如何遍歷DOM的不同部分。到目前爲止,我的代碼只能從選擇範圍的startContainer中獲取元素。我需要某種遞歸嗎?這裏是我的代碼:如何獲取突出顯示的所有元素
getSelectedElementTags:function()
{
var range, sel, container;
sel = content.window.getSelection();
if (sel.getRangeAt)
{
if (sel.rangeCount > 0)
{
range = sel.getRangeAt(0);
}
}
else
{
range = content.window.createRange();
range.setStart(sel.anchorNode, sel.anchorOffset);
range.setEnd(sel.focusNode, sel.focusOffset);
alert("range created");
}
if (range)
{
container = range["startContainer"];
var elms = container.parentNode.getElementsByTagName("*");
elmlist = "parent: "+container.parentNode.tagName + " (" + elms.length + ")\n";
for (i in elms)
{
if (elms[i].tagName != null)
{
elmlist += elms[i].tagName+"\n";
}
}
alert(elmlist);
}
},
你可以使用jQuery嗎?哪些瀏覽器必須工作(請不要全部說明,因爲我懷疑支持Netscape 4)。 – 2009-09-27 05:33:55
只是Firefox,因爲這是一個擴展。 – 2009-09-27 06:36:03