我需要从选定的文本中获取周围的DOM节点。如何使用Firefox Add-on SDK执行此操作? 或者我可以在我的扩展程序中使用其他任何可能性吗?
E.g。 (选中的是大写)
<b class='foo'>here is SELected text</b>
目标是获取类名。
答案 0 :(得分:1)
内容脚本可以访问window.getSelection()
object。从理论上讲,选择可以由几个不同的范围组成。我从未见过多范围选择,你可能想要假设只有第一个范围是相关的。范围具有commonAncestorContainer
property,允许您获取包含所有选定文本部分的元素。这意味着您需要在内容脚本中执行以下操作:
var selection = window.getSelection();
if (selection.rangeCount >= 1)
{
var range = selection.getRangeAt(0);
alert(range.commonAncestorContainer.className);
}
答案 1 :(得分:0)
选择不一定具有单个父节点。选择范围的端点可以在不同的节点中,该范围内包括任意数量的节点,并且选择可以包括多个范围。 selection
对象实际上非常复杂。