if(selectedText){
WO=document.open("","test","scrollbars=yes, width=300, height=200,toolbar=yes,location=yes,directories=yes,outerWidth=300,outerHeight=200,left=100,top=100");
WO.document.open();
WO.document.write("<HTML><BODY>\n");
WO.document.writeln(selectedText);
WO.document.write("</BODY></HTML>\n");
WO.document.close();
}
}
//-->
</SCRIPT>
*赤文字部分が選択文字列を取得するフレームの名前
b.html (ボタン)のページから、<INPUT onclick=op() type="button" value="選択範囲を新しいウィンドウで表示" name="btnStart">などで、関数op()を呼び出せば、
文字列が選択されていれば新しいページに書き出します。
b.html (ボタン)のページから、<INPUT onclick=op() type="button" value="選択範囲を新しいウィンドウで表示" name="btnStart">などで、関数を呼び出せば、
文字列が選択されていれば新しいページに書き出します。
*注意事項。
Javascriptを使い、フレーム間で選択文字列やクリップボードなどのデーターを扱う場合は、フレームが基本的に同じサイト内のページの場合しかできないみたいです。(セキュリティの関係から
Javascriptで アクセスが拒否されました とエラーが出る場合、このところにひっかかっている場合があります。
↑のframe.html,a.html,b.htmlをデスクトップなどに保存して
ローカルでIEで実行するとよくわかるのですが、不明なゾーンとなってしまい、アクセスが拒否されてしまいます。
ローカルで実行したいのならば、Firefoxなどのブラウザをつかうしかないようです。
(IEでローカルでやる方法がわかりませんでした。)
IEの場合はめんどくさいですが、サーバーにアップして確認するとエラーはでません。
あくまで、これはセキュリティ上の問題でローカル(不明なゾーン)では、フレーム間のデーター受け渡しができないものと思われます。
参考
------------------------------------------------------------------
選択された範囲の文字を得る関数 関数 対応ブラウザ (括弧付きは下位互換対応)
document.getSelection() Netscape Communicater 4.0 以上、Mozilla、(Firefox)
document.selection() Internet Explorer 4.0 以上
document.selection.createRange().text Internet Explorer 4.0 以上
window.getSelection() Firefox、Safari
window._content.getSelection().toString() Firefox、Mozilla
( ↑toString() をつけないと、DOM2 の Range オブジェクトになるらしい。)
------------------------------------------------------------------