Javascript 使用rangy从多个iframe抓取选定文本?

Javascript 使用rangy从多个iframe抓取选定文本?,javascript,jquery,iframe,rangy,Javascript,Jquery,Iframe,Rangy,这是一个很好的例子。我一直在尝试使用rangy从多个iframe中获取所选文本。代码似乎适用于第一个iframe 我想用相同的按钮抓取元素,对于div,它可以工作k。但是在iframe中,我们需要指定iframe,当我尝试iframe数组时,它不起作用使用jQuery: 演示:使用jQuery: 演示:以下是 尝试获取Rangy iframe选择对象的文本,并访问FocusNode属性,然后从该iframe获取所选文本,如下所示: JS: 这是你的电话号码 尝试获取Rangy iframe选择对

这是一个很好的例子。我一直在尝试使用rangy从多个iframe中获取所选文本。代码似乎适用于第一个iframe

我想用相同的按钮抓取元素,对于div,它可以工作k。但是在iframe中,我们需要指定iframe,当我尝试iframe数组时,它不起作用

使用jQuery:

演示:

使用jQuery:

演示:

以下是

尝试获取Rangy iframe选择对象的文本,并访问
FocusNode
属性,然后从该iframe获取所选文本,如下所示:

JS: 这是你的电话号码

尝试获取Rangy iframe选择对象的文本,并访问
FocusNode
属性,然后从该iframe获取所选文本,如下所示:

JS:
这是演示:不是这样的。这是演示:不是这样的。谢谢@Aditya您的答案没问题,但另一个更容易使用。:)另一个弹出一个空警报?我的不是一个复杂的解决方案。。。只需检查
null
值,因为这将导致错误!:)您可以继续,只需
alert(selection)
,我只是想让解决方案对您更清楚:)因为您的解决方案使用“focusNode.data”,它不会返回所选文本,而是返回iframe中的整个文本。您应该删除它以仅获取所选文本。谢谢@Aditya您的答案是可以的,但另一个更易于使用。:)另一个弹出一个空警报?我的不是一个复杂的解决方案。。。只需检查
null
值,因为这将导致错误!:)您可以继续,只需
alert(selection)
,我只是想让解决方案对您更清楚:)因为您的解决方案使用“focusNode.data”,它不会返回所选文本,而是返回iframe中的整个文本。你应该删除它以只获取所选文本。很抱歉回复太晚:刚刚在这里测试过,它在Chrome和Firefox上运行得非常完美。。。然后我去了IE和BAM:收到了空白警报。。。IE似乎不允许您在两个iframe上都选择文本,但我认为这是一个与JSFIDLE如何呈现代码有关的问题(两个iframe在JSFIDLE生成的另一个iframe中)。很抱歉,最后的答复是:刚刚在这里测试过,它在Chrome和Firefox上工作得非常完美。。。然后我去了IE和BAM:收到了空白警报。。。IE似乎不允许在两个iframe上都选择文本,但我认为这是一个与JSFIDLE如何呈现代码有关的问题(两个iframe位于JSFIDLE生成的另一个iframe中)
$(function () {
    $('button').click(function () {
        $.each(iframe, function(idx, vl) {
            var selection = rangy.getSelection(iframe[idx]);
            alert(selection);
        });
    });
});
$(function () {
 $('button').click(function () {
   iframe.each(function(i){
    if(rangy.getSelection(iframe[i]).focusNode!=null)
     {
        var selection = rangy.getSelection(iframe[i]).focusNode.data;
        alert("Iframe - "+(i+1)+ " selected text : '" +selection+"'");
      }
   });
 });
});