こんばんは、夜ご飯たべすぎで胃もたれしているころすけ(@wg_koro)です。
久々にGreasemonkeyを書いていた時のこと。
画面に小さなウィンドウ(div)を追加する処理を書いたんです。そしたら画面のあちこちにニョコニョコウィンドウが追加される。なんじゃこれ。
どうやらGreasemonkeyは、ページに埋め込まれたiframe内のHTMLに対しても動作してしまうらしい。なのでiframe内のhtmlにdivが追加されちゃった。
なるほど、そういうことか。へーぇ。
んじゃ、自分がiframeの親なのか子なのか判定すればいい。・・・てどうやるんだ?
ちょっと調べてみたら、下記でいいらしい。
[javascript]
if(window == window.parent){
// 自分がiframeの親である場合
alert(‘吾輩は親である!’);
}
else{
// 子の場合
alert(‘吾輩は子なのである・・・’);
}
[/javascript]
if(window == window.parent){
// 自分がiframeの親である場合
alert(‘吾輩は親である!’);
}
else{
// 子の場合
alert(‘吾輩は子なのである・・・’);
}
[/javascript]
これでOK!
あまり使うことは無さそうだけど、覚えておいて損はないかな。
ありがとうございます。
jqueryでdocument ready時に、先頭項目にフォーカスをセットする共通関数を使用していたのですが、後から子フレームがあるページができ、フォーカスが子フレームに持ってかれてしまっていました。本情報で判別する事ができ、子フレームにフォーカスを奪われる事がなくなりました。感謝