当所选文本在iframe中时,content.getSelection()不起作用?

时间:2012-06-12 04:50:23

标签: javascript firefox firefox-addon

在Firefox扩展开发中,我希望从chrome页面中获取所选内容,当我使用content.getSelection()时,它的工作正常。

但如果所选文本位于iframe中,则无法正常工作。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:3)

您需要在已选择文字的getSelection()对象上调用window。例如,如果内容文档中有<iframe id="iframe">,您将使用以下内容获取该框架中的选择:

alert(content.document.getElementById("iframe").contentWindow.getSelection());

如果您不知道用户选择文本的位置并且您想要查看所有框架,那么您应该从顶层开始递归遍历它们,如下所示:

function getSelection(wnd)
{
  var result = wnd.getSelection();

  for (var i = 0; !result && i < wnd.frames.length; i++)
    result = getSelection(wnd.frames[i]);

  return result;
}

alert(getSelection(content));