
別窓を開くと、別窓内のインラインフレームが表示されるときとされないときがあります。
プログラムは以下のようにしました。
・メインファイル
<script language="javascript">
<!--
var subWin = null;
function disp(nValue){
subWin = window.open("別窓ファイル名","");
subWin.menu.location.href = "2003" + nValue + "menu.html";}
//-->
</script>
<body>
<a href="JavaScript:disp('01');">
<img src="img1.jpg">
</a>
<a href="JavaScript:disp('10');">
<img src="img10.jpg">
</a>
</body>
・別窓のファイル
<IFRAME src="" id="menu">
</IFRAME>
エラーメッセージは以下のようにでます。
『subWin.menu.locationはNullまたはオブジェクトではありません。』
プログラムに間違いがあればご指摘お願いします。
No.2ベストアンサー
- 回答日時:
>処理待ちする方法
setTimeout()を使うのが普通です。
ただ、ご質問の場合は何秒待てば良いのかというのが
ローカルの環境で左右され、なかなか難しいと思います。
別窓に月(?)の情報を渡して、
onloadを使えばよろしいのでは・・
・メインファイル
<script>
function disp(nValue){
window.open("*****.html?"+nValue,"");
}
</script>
<body>
<a href="JavaScript:disp('01');">
<img src="img1.jpg">
</a>
<a href="JavaScript:disp('10');">
<img src="img10.jpg">
</a>
</body>
・別窓のファイル
<script>
function x(){
nValue=location.search.substring(1,location.search.length);
menu.location.href = "2003" + nValue + "menu.html";
}
window.onload=x;
</script>
<IFRAME src="" id="menu">
</IFRAME>
.
ありがとうございます!!
教えていただいたプログラムでできました!!
処理待ち方法はなんとなくタイマーかな~とは思っていたのですが、どうもタイマーは苦手で。。。
JavaScript初心者なもので、onloadをよく知りませんでした。
しかも、最初はonLoadにしていて、全く動かないやん!と思ったらonloadにしたら動きました!!
onloadとonLoadじゃ違うんですね。
そんなことも知らなかったなんて。。。
本当にありがとうございました!!
No.3
- 回答日時:
#1>具体的にプログラムをどのようにすればよいのか
#2のように、別窓側で処理できれば、onload が使えるので楽ちんです。コールバックするような感じにしてもいいかも。
別窓側をいじれない時は、やはり待つしかないので
処理待ちする時は、
http://okwave.jp/kotaeru.php3?qid=1918363
みたいな感じでやればイイと思います。
要点は、
if(開いた先のオブジェクトがあるかどうか検査して、無い場合){
setTimeout を利用して、適当な時間を置いてもう一度やってみる
} else {
setTimeout をクリアして、やるべき処理をする
}
ってことです。
注意点:
※IEでは、id でオブジェクトに直接アクセスできるが、全てのブラウザではそうではないので、getElementById を使う方がよい。
※subWin.menu がnull の時、subWin.menu.location は、当然
『subWin.menu.locationはNullまたはオブジェクトではありません。』
になるのでそういう階層に注意。
※呼び出すURLがあると分かっている時はいいが、あるかないか分からない時は永遠に待つようなことにならないように、試行回数(最大待ち時間?)を決めておくといいかも。
再度のご回答ありがとうございます!!
処理待ちの方法はなんとなくタイマーかな~とは思っていたのですが、タイマーは苦手でonloadを使うことにしました。
どうもありがとうございました!!
No.1
- 回答日時:
(1)subWin = window.open("別窓ファイル名","");
(2)subWin.menu.location.href = "2003" + nValue + "menu.html";
のような場合
(1)でページが開き終わるまえに(2)を実行しようとすると、まだ、当該ウィンドウのオブジェクトが全部できていないので、
『subWin.menu.locationはNullまたはオブジェクトではありません。』
のようなメッセージが出る場合があります。
当該ページの読み込みが完了した後(わかりやすくいえば、onload イベントが発生したあと)に操作する必要があります。
言ってみれば、処理待ちする必要があります。
ご回答ありがとうございます。
なるほど!!ですね。
おっしゃってる意味はよーくわかります。
だから、エラーがでるときとでないときがあったんですね。
しかし、私には処理待ちする方法がわかりません。
具体的にプログラムをどのようにすればよいのか教えていただけるととてもありがたいのですが。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- HTML・CSS htmlについて質問です! 写真のように写真の部分が?になってしまいます。 ファイルもしっかり選べて 1 2023/07/09 21:17
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワーポイントのVBAでテキスト...
-
Excelで =EMBED("Acrobat Docu...
-
C#でフォームのオブジェクト名...
-
EXCEL VBAにて動的にCheckBOXを...
-
ビジュアルC++でボタンの有...
-
VBAのWindowオブジェクトとWork...
-
ワイルドカード<?>と型パラメー...
-
VBScriptで計算して出た値をク...
-
戻り値がクラスオブジェクト
-
エクリプス コンテンツアシスト...
-
Object型からDouble型へのキャスト
-
VBA 同じ名前のオブジェクトを...
-
VBSでのステートメントの末尾が...
-
Vbで通常使用するプリンターを...
-
Objective-Cで構造体を配列や辞...
-
インラインフレームがときどき...
-
多人数のじゃんけんプログラム
-
日付のカウント
-
C++でのクラスオブジェクトの破棄
-
0埋めについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワーポイントのVBAでテキスト...
-
Excelで =EMBED("Acrobat Docu...
-
VBA 同じ名前のオブジェクトを...
-
EXCEL VBAにて動的にCheckBOXを...
-
ワイルドカード<?>と型パラメー...
-
VBAのWindowオブジェクトとWork...
-
ビジュアルC++でボタンの有...
-
C#でフォームのオブジェクト名...
-
COMコンポーネントって何?
-
Object型からDouble型へのキャスト
-
戻り値がクラスオブジェクト
-
Accessの連結・非連結オブジェ...
-
error C2712: オブジェクト ア...
-
CFileDialogでフォルダだけを選...
-
オブジェクトレベルとメタレベル
-
Vbで通常使用するプリンターを...
-
C++でのクラスオブジェクトの破棄
-
時間帯判定をする。
-
CoCreateInstanceでエラーになる。
-
LISTBOXの内容が更新されま...
おすすめ情報