当前位置:  开发笔记 > 编程语言 > 正文

如何使用javascript从iframe中选择文本?

如何解决《如何使用javascript从iframe中选择文本?》经验,为你挑选了3个好方法。

您无法访问iframe来自与您的域不同的域内的数据.这是由于同源政策.



1> bobince..:

document.getSelection

在外部文件上.要在iframe中选择文档,您需要获取内部文档:

var iframe= document.getElementById('my');
var idoc= iframe.contentDocument || iframe.contentWindow.document; // ie compatibility

idoc.getSelection()

但请注意,WebKit不支持document.getSelection() document.selection.尝试使用window.getSelection()适用于Firefox和WebKit的替换它,但返回一个选择对象(Ranges周围的集合/包装器),需要字符串:

var idoc= iframe.contentDocument || iframe.contentWindow.document;
var iwin= iframe.contentWindow || iframe.contentDocument.defaultView;

''+iwin.getSelection()

我不确定这是什么意思:

if (window.RegExp) {
  var regstr = unescape("%20%20%20%20%20");
  var regexp = new RegExp(regstr, "g");
  str = str.replace(regexp, "");
}

RegExp是基本的JavaScript,可以追溯到最早的版本; 它永远存在,你不必嗅闻它.多个空格的URL编码是非常不必要的.你甚至不需要RegExp,字符串替换可以写成:

str= str.split('     ').join('');



2> Luca Matteis..:

您无法访问iframe来自与您的域不同的域内的数据.这是由于同源政策.


好的,抱歉错误的例子,在iframe我有文本,我使用iframe为wysiwig编辑器,所以它不在不同的域.

3> Tim Down..:

您需要从iframe中的文档/窗口中进行选择.

function getIframeSelectionText(iframe) {
  var win = iframe.contentWindow;
  var doc = win.document;

  if (win.getSelection) {
    return win.getSelection().toString();
  } else if (doc.selection && doc.selection.createRange) {
    return doc.selection.createRange().text;
  }
}

var iframe = document.getElementById("my");
alert(getIframeSelectionText(iframe));

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有