<html>
<body>
<script type="text/javascript">
function smth() {
if (document.getSelection) {
var str = document.getSelection();
if (window.RegExp) {
var regstr = unescape("%20%20%20%20%20");
var regexp = new RegExp(regstr, "g");
str = str.replace(regexp, "");
}
} else if (document.selection && document.selection.createRange) {
var range = document.selection.createRange();
var str = range.text;
}
alert(str);
}
</script>
<iframe id="my" width="300" height="225">
.....some html ....
</iframe>
<a href="#" onclick="smth();">AA</a>
</body>
</html>
with smth
函数我可以从某些 div 中获取选定的文本,但它不适用于 iframe。
有什么想法如何从 iframe 获取选定的文本吗?
文档.getSelection
位于外部文档上。要在 iframe 中选择文档,您需要获取内部文档:
var iframe= document.getElementById('my');
var idoc= iframe.contentDocument || iframe.contentWindow.document; // ie compatibility
idoc.getSelection()
但请注意,WebKit 不支持document.getSelection()
or document.selection
。尝试将其替换为window.getSelection()
它适用于 Firefox 和 WebKit,但返回一个选择对象(范围周围的集合/包装器),它需要字符串:
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('');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)