Como encontrar a seleção no documento HTML que contém iframe ou apenas quadros
Existe uma maneira de encontrar o texto selecionado em um documento HTML se o texto estiver dentro de um de seus quadros (ou iframes
Se o documento não tiver molduras, é simples:
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
ntão isso funciona em vários navegadores (embora não seja muito bonito
O problema é quando o documento contém quadros ou iframes. Os quadros têm seu próprio documento, portanto, apenas o uso do código acima não é suficiente. Pode-se iterar potencialmente na árvore de quadros e procurar o texto selecionado em um deles, no entanto, em geral, os quadros podem ter conteúdo de domínios diferentes, portanto, mesmo se eu fosse iterar por todos os quadros e sub-quadros, etc., do documento raiz na pesquisa do texto selecionado, eu não teria permissão para acessar o HTML, certo? Portanto, não seria possível obter o texto selecionado.
Existe uma maneira (simples) confiável de encontrar o texto selecionado em uma página da web, mesmo que a página contenha quadro
Obrigad