• ベストアンサー

親フレームの存在確認

フレームページで、子フレームが単独で呼び出された時にエラーを表示したいです。 親フレームとなるindex.htmlでは、それぞれa.phpとb.phpを呼んでいます a.phpでは、a.htmlを読みこんでいます。 このa.htmlが単独で呼び出された時に、index.htmlにアクセスするようにアラートを表示したいのです。 if(!window.opener || window.opener.closed) を試してみましたが、フレームのある状態でもフレーム無しの処理が走ってしまいます。 何か良い方法、改善点等ありましたら教えてください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

>javascriptのファイル名, だけじゃない、全部おかしいんだ(汗 作業元のQ3134334をコピーして使ったから。 修正箇所 【誤】 <script type="text/javascript" src="Q3134334-1.js"></script> 【正】 <script type="text/javascript" src="Q3136302-1.js"></script> この変更に伴いjavascriptファイルのファイル名をQ3136302-1.js に変更してください =========== 【誤】 <frame src="Q3134334-1.html" id="hoge" /> <frame src="Q3134334-2.html" id="fuga" /> 【正】 <frame src="Q3136302-1.html" id="hoge" /> <frame src="Q3136302-2.html" id="fuga" /> =========

-melissa-
質問者

お礼

大変丁寧な回答をしていただきましてありがとうございます。 おかげさまで解決しました。

その他の回答 (2)

回答No.2

#すみません javascriptのファイル名,他と統一し損ねましたが、許してください(汗

回答No.1

===============Q3136302-1.html=================== <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>テスト</title> <style type="text/css"> p{background-color:red;} </style> <script type="text/javascript" src="Q3134334-1.js"></script> </head> <body onload="check();"> <p>ほげ</p> </body> </html> ===============Q3136302-2.html=================== <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>テスト</title> <style type="text/css"> p{background-color:yellow;} </style> <script type="text/javascript" src="Q3134334-1.js"></script> </head> <body onload="check();"> <p>ほげ</p> </body> </html> ===============Q3136302-3.html=================== <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>テスト</title> <style type="text/css"> p{background-color:yellow;} </style> </head> <frameset cols="50%,50%"> <frame src="Q3134334-1.html" id="hoge" /> <frame src="Q3134334-2.html" id="fuga" /> </frameset> </html> =========Q3134334-1.js=========== function check(){ if(parent.document.URL == document.URL){alert('単独')}; } 【重要な注意】 1. IE 7 と Minefield(Firefox 3.0a7pre)で確認。OperaとSafariでは未確認。 2. 当然ながら、javascript無効な環境では動作しない 3. サンプル中にはnoscriptやnoframes要素は含まれないが, 実際に使用する時には含めること。

関連するQ&A