有没有办法找到一个HTML文档中选定的文本,如果文本可能是其帧(或iFrame)中的一个内HTML文档中选择?如何找到包含iframe或只是框架
如果文档没有框架很简单:
var text;
if (document.getSelection) {
// Firefox and friends
text = document.getSelection();
} else if (document.selection) {
// IE
text = document.selection.createRange();
}
if (text == undefined || text == '') {
// Iterate over all textarea elements and see if one of them has selection
var areas = document.getElementsByTagName('textarea');
for(var i = 0; i = areas.length; i++) {
if(areas[i].selectionStart != undefined &&
areas[i].selectionStart != areas[i].selectionEnd){
text = areas[i].value.substring(areas[i].selectionStart, a[i].selectionEnd);
break;
}
}
}
// Now if document has selected text, it's in text
所以此工程跨浏览器(虽然不是很漂亮)。
问题是当文档包含框架或iframes。 框架有自己的文档,所以只使用上面的代码是不够的。 可能会对帧树进行迭代,并在其中一个帧中搜索选定的文本,但是一般帧可以包含来自不同域的内容,因此即使我要遍历根文档中的所有帧和所有子帧等,搜索选定的文本我不会有权限访问他们的HTML,对吧?所以我无法获得他们选定的文本。
有没有发现,即使页面包含框架的网页上所选文本的(简单的)可靠的方式?
感谢