自分がiframeの親か子かを判別する方法

こんばんは、夜ご飯たべすぎで胃もたれしているころすけ(@wg_koro)です。

キーボード

久々にGreasemonkeyを書いていた時のこと。

画面に小さなウィンドウ(div)を追加する処理を書いたんです。そしたら画面のあちこちにニョコニョコウィンドウが追加される。なんじゃこれ。

どうやらGreasemonkeyは、ページに埋め込まれたiframe内のHTMLに対しても動作してしまうらしい。なのでiframe内のhtmlにdivが追加されちゃった。

なるほど、そういうことか。へーぇ。

んじゃ、自分がiframeの親なのか子なのか判定すればいい。・・・てどうやるんだ?

ちょっと調べてみたら、下記でいいらしい。

[javascript]
if(window == window.parent){
// 自分がiframeの親である場合
alert(‘吾輩は親である!’);
}
else{
// 子の場合
alert(‘吾輩は子なのである・・・’);
}
[/javascript]

これでOK!

あまり使うことは無さそうだけど、覚えておいて損はないかな。

2件のコメント

  1. ありがとうございます。
    jqueryでdocument ready時に、先頭項目にフォーカスをセットする共通関数を使用していたのですが、後から子フレームがあるページができ、フォーカスが子フレームに持ってかれてしまっていました。本情報で判別する事ができ、子フレームにフォーカスを奪われる事がなくなりました。感謝

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください