テキストがそのフレーム (または iframe) の 1 つに含まれている可能性がある場合、HTML ドキュメントで選択したテキストを見つける方法はありますか?
ドキュメントにフレームがない場合は簡単です:
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
したがって、これはクロスブラウザーで動作します (ただし、あまりきれいではありません)。
問題は、ドキュメントにフレームまたは iframe が含まれている場合です。フレームには独自のドキュメントがあるため、上記のコードを使用するだけでは不十分です。フレーム ツリーを反復処理して、そのうちの 1 つで選択したテキストを検索することもできますが、一般的に、フレームにはさまざまなドメインのコンテンツが含まれている可能性があるため、検索でルート ドキュメントのすべてのフレームとすべてのサブフレームなどを反復処理する場合でも、選択したテキストの HTML にアクセスする権限がありませんでしたよね? そのため、選択したテキストを取得できません。
ページにフレームが含まれている場合でも、Web ページで選択したテキストを見つける (簡単な) 信頼できる方法はありますか?
ありがとう