您无法访问iframe
来自与您的域不同的域内的数据.这是由于同源政策.
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('');
您无法访问iframe
来自与您的域不同的域内的数据.这是由于同源政策.
您需要从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));