Javascript 使用rangy从多个iframe抓取选定文本?
这是一个很好的例子。我一直在尝试使用rangy从多个iframe中获取所选文本。代码似乎适用于第一个iframe 我想用相同的按钮抓取元素,对于div,它可以工作k。但是在iframe中,我们需要指定iframe,当我尝试iframe数组时,它不起作用使用jQuery: 演示:使用jQuery: 演示:以下是 尝试获取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选择对
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+"'");
}
});
});
});