首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在页面上的任意iframe中获取选定文本

在页面上的任意iframe中获取选定文本
EN

Stack Overflow用户
提问于 2015-05-22 22:37:03
回答 1查看 2.1K关注 0票数 1

我试图使用纯Javascript (没有jQuery)循环遍历页面上的每个iframe,然后检查是否有任何iframe包含高亮显示(所选)文本。然后显示一个警报,显示突出显示的文本。杀手是..。iframes的ID不会提前被知道。因此,需要遍历每个iframe。FYI - iframes都在同一个域上,所以这里没有跨域问题.

我认为我的代码非常接近我所需要的,但到目前为止还没有雪茄。

在页面上,我要这样做.

代码语言:javascript
运行
复制
var iframes = document.getElementsByTagName('iframe');
for (var i = 0; i < iframes.length; i++) {
    iframes[i].contentWindow.document.onmouseup = function() { 
        var iframeSelection = iframes[i].contentWindow.document.getSelection(); 
        if (iframeSelection.toString().length > 0) { alert(iframeSelection); }
    }
}

还有..。对于这个特定的项目,它只需要在Chrome中工作。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-22 22:49:36

您的iframe和选择代码很好,但是在运行事件处理程序函数时,您将遇到一个具有for循环的for- i将始终等于iframes.length

您可以通过使用Array.prototype.forEach进行迭代来避免这种情况。

代码语言:javascript
运行
复制
var iframes = document.getElementsByTagName('iframe');

[].forEach.call(iframes, function(frame) {
    frame.contentWindow.document.onmouseup = function() { 
      var iframeSelection = frame.contentWindow.getSelection(); 
      if (iframeSelection.toString().length > 0) { alert(iframeSelection); }
  }
});

JSBin

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30406846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档