2007年6月2日土曜日

document.getSelection()というメソッドはセキュリティーに関係あるのね…

FRAMEで他のサイトを表示し,そこから選択された文字列を取得したい!と思ったのですが
これはセキュリティーホールになり得るんですねぇ.どうにも通りません.

他のサイトの何か選択してしまえば,その閲覧していた行動を元のサイトへ送信する事が可能だものね….

ということで作戦変更…bookmarkletで行きましょう.というかやってみるだけだけど.

話変わって…
bookmarkletって今見ているページに何かをさらに加えることも可能なんだね.
ttp://web-tan.forum.impressrd.jp/e/2007/05/21/1373

もっとも危険と言えば危険だなぁ.便利だけど.

bookmarkletでSCRIPT要素を追加してsrc属性を設定するなら他のサイトのスクリプトを追加できるのね.
例えば以下のようにすれば関数を準備できる.

var s = document.createElement('script');
s.type = 'text/javascript';
s.charset = 'utf-8';
s.src = "url/to/jslib";
document.getElementsByTagName("head")[0].appendChild(s);

使うまでにちょっとまたないと(通信とかか?)有効にならないところが面倒だけどね.

有効になったかどうかを調べるのが面倒なので
とりあえずsetTimeoutとかで使うのをちょっと待てばまぁ使える.

また,追加箇所を以下のようにすれば任意の場所(?)でスクリプトを実行できる.

parent.appendChild(s);


でもって話戻すけど…
他のサイトの情報を掲載したい時は最後の手段はAjaxでなくIFRAMEという事なんだなあぁ
と関心した昨日でした.

0 件のコメント: