• ベストアンサー

別窓のインラインフレームの中身を変更する

javascript初心者です。 HPを作成中ですが、FLASHが全くわからないので、javascriptでアルバムを作っています。 メインページで何月が選択できるようになっており、クリックすると別窓が出ます。 別窓にはインラインフレームでサムネイル表示させ写真を選べるようにしています。 別窓のファイルは1つ(album.html)にし、メインページからインラインフレームの中身(1月.html,2月.html etc...)を変えようとしています。 プログラムはこのようにしました。 subWin = window.open("***"); function ***() { subWin.インラインフレーム名.location.href = ***.html; } 最初、インラインフレームの中身がうまく表示されなくて、プログラムが間違っているのかと思ったのですが、プログラムエラーは出ず、アクティブコントロールがどうのこうのって表示が出たので、試しに『マイコンピュータのファイルでのアクティブコンテンツ実行を許可する』にしてみたところ、ちゃんと表示されました。 しかし、ちょっと不安定なんです。 連続でメインページの月選択を押すと(そんな人はいないでしょうけど)表示されたりされなかったり・・・ javascriptを使うとそんなもんなんですか? それと、自分のPCでは見れてもサーバーにアップして公開しても他の人には見れるか心配です。 素直に別窓をフレーム分割して作る方法もありますが、そうするとファイル数が倍になるので今回javascriptを使いました。 プログラムが間違っているのか、そもそも別窓のインラインフレームを指定することが間違っているのか、不安定の原因をお教えください。

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

  • ベストアンサー
  • Hardking
  • ベストアンサー率45% (73/160)
回答No.3

別窓のalbum.htmlがオープンチェックし まだオープンされていない場合のみ window.openで オープンするといいですよ。 あと、その他対処としてwindow.showModalDialogで モーダルダイアログでalbum.htmlをオープンする 方法もあります。 <Script Language="JavaScript"> <!-- //別窓のウィンドウハンドル退避用変数 var hWin = null; function ***() { //別窓のオープンチェック if (hWin && !hWin.closed) { //オープンしている場合 hWin.インラインフレーム名.location.href = ***.html; } else { //オープンしていない場合 hWin = window.open("album.html"); hWin.インラインフレーム名.location.href = ***.html; } } //--> </Script>

fumi-ryu
質問者

お礼

お礼が遅くなってすみません。 教えていただいたプログラムで別窓が複数出てくることはなくなりました!! どうもありがとうございます!! ただ、まだ別窓を開くとインラインフレームが表示されないときがあるんですよね。 もう一度プログラムを見直して見ます。 ご回答ありがとうございました。

その他の回答 (2)

回答No.2

subWinを確認して、 値が返る(窓が開いている)場合は 新規に窓を開かず(window.openしない) 開いている窓に別の月を表示させる(Location.href)ことのみ行うように scriptを書き換えればよろしいかと思います。 javascriptは知る限り、不安定な動きはしません。 ある特定の状況では必ず同じ動作を行いますよ。 (*ブラウザによる解釈の差によるものは除く)

fumi-ryu
質問者

お礼

お礼が遅くなってすみません。 >javascriptは知る限り、不安定な動きはしません。 そうですか。。。 回数は減りましたが、まだ別窓を開いたときにインラインフレームが開かないときがあるんですよね。 もう一度プログラムを見直して見ます。 ご回答ありがとうございました。

  • Hardking
  • ベストアンサー率45% (73/160)
回答No.1

・別窓で開くページがalbum.htmlでない。 window.open("***");  質問を記述する際のミスで、実際はwindow.open("album.html"); となっていますか? ・メインページ対象月の選択とJavaScriptの呼び出し関数との  整合性はOKですか?

fumi-ryu
質問者

補足

すいません。 window.open("album.html")です。 どうやら、不安定になるのは、 window.open("album.html","***") と、name属性を入れると不安定になるみたいです。 この場合、別窓は1つしか出てきませんが、別窓を閉じないで別の月選択をすると表示がおかしくなります。 window.open("album.html") と、name属性を入れないと安定はするのですが、月選択をするごとに別窓が新たに出てくるので、ウィンドウがすごくいっぱいに増えます。 どうするのが一番いいのでしょうか?

関連するQ&A

  • インラインフレームがときどき表示されない

    別窓を開くと、別窓内のインラインフレームが表示されるときとされないときがあります。 プログラムは以下のようにしました。 ・メインファイル <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またはオブジェクトではありません。』 プログラムに間違いがあればご指摘お願いします。

  • インラインフレームの一部を撮って別窓に表示するには?

    こんばんは。いつもお世話になっています。 インラインフレームの一部(厳密に言うと横が0pxから200pxで縦が0pxから270pxです)をPrint Screenキーで撮とったようにして、それを別窓で表示するにはどうしたらいいんでしょうか? 一応onclickを使う予定です。 JavaScript PrintScreenなどで調べてみても、検索単語が悪いのか、期待したものはでてきませんでした。 お願いいたします。

  • インラインフレーム内の文字クリックで別窓を開く事は出来ますか?

    こんにちは。 いつもお世話になっております。 今、HTMLのテーブル内にインラインフレームを 作って、読み込みHTMLはリンク集になっている ページを作っています。 読み込まれている【リンク集HTML】のリンク文字に target="_blank" をつけているのですが、 インラインフレーム内が切り替わるだけなのです。 インラインフレームの属性指定の部分の name="" を削除してみたのですが、リンク文字クリックで 別窓表示にはなりませんでした…。 インラインフレーム内のリンク文字をクリックして 新しいウィンドゥで表示する事は不可能なのでしょうか? どうかご指導よろしくお願い致します。

    • ベストアンサー
    • HTML
  • 別窓についての質問です。

    別窓の開くJavaScriptは分かるのですが、 別窓を多く開く方法が分かりません (1)大きめの窓で開きたい (2)小さめの窓で開きたい (↑サイズ指定をして) という場合、別窓を共有(?)する形になってしまい、 (1)を開いたまま、(2)を開こうとすると、 (1)の大きさの窓なので、 (2)のページを開くと余白ができてしまいます。 <HEAD>~</HEAD>内に <SCRIPT language=JavaScript><!-- function subWin1(){ window.open("★★★","window2","resizable=no,menubar=no,directories=no,status=no,location=no,scrollbars=yes,toolbar=no,width=500,height=500,left=10,top=10"); } --> </SCRIPT> <BODY>~</BODY>内に <A href="javascript:subWin1();" style="text-decoration:none" style="color:black"> <FONT onmouseover='this.color="#FF0000";' onmouseout='this.color=""'> <b>掲示板</b> </FONT> </A> (1)・(2)共、この書き方をしているのですが… ご意見お待ちしています。

  • インラインフレームについて

    はじめまして。 初歩的な質問ですが非常に困っているので誰か助けてください。 インラインフレームにデータを渡すにはどうしたらいいでしょうか・・ メインのページがあり、そこに表示させているインラインフレームに値を飛ばしたいのですが、うまくいきません。 どなたかご教授ください、お願いいたします。

  • Javascriptを使わないで別窓

    サイトの作成で、現在以下のjavascriptを使用したつくりになっているんですが、 function subWin1(){ window.open("top_ss.htm","lunanueva","resizable=no,menubar=no,directories=no,status=no,location=no,scrollbars=yes,toolbar=no,width=800,height=620");} ※ステータスバーとか消した別窓を出すjavascript Javascriptを使用せず、ステータスバーを消す別窓など、それに近いことを行うことはできないでしょうか。

    • ベストアンサー
    • HTML
  • インラインフレームについて?

    インラインフレームでフレームに入るファイルにいくつかラベルを付けて別のページに飛んだ時にラベルの付いている指示した場所に飛ばせたいのですが、どうしてもうまくいきません。 別のページに飛んだ時にインラインフレームがあるページの中央に飛んでしまいます。ちなみにインラインフレームに入るファイルはちゃんと指示した所まで飛びます。 別のページに飛んだ時にそのページの頭にくるようにしたいのですが、どうすればいいのか教えてください。 こちらの環境はホームページビルダー8を使っています。IEのバージョンは6です。 説明が下手ですが、よろしくお願いします。

  • インラインフレームについて

    メインのページにインラインフレームをつくり、インラインフレームの文字やボタンをクリックするとwindow.openで画面を展開させたいのですが、画面を展開させて画面を閉じてみるとインラインフレームに [object]と表示されてしまします。 これを回避するにはどうしたらいいのでしょうか? またこれは一体なんなのでしょうか? どなたかご教授ください。お願いいたします。

  • インラインフレームにデータを渡したい

    インラインフレームにデータを渡すにはどうしたらいいでしょうか・・ メインのページがあり、そこに表示させているインラインフレームに値を飛ばしたいのですが、うまくいきません。 初心者なので、どのようなソースを書けばいいのか具体的に教えて頂けると大変助かります。 どうぞよろしくお願いいたします。

  • インラインフレームからのリンクで困っています

    ホームページビルダー7を使っています。 インラインフレームを利用して画面左側にメニューアイコンを置いて 右側にリンク先のページを表示といった風にしたいです。 新しいページ(仮にAとします)の左側にBというインラインフレームを挿入し、そこからメインページへのリンクを挿入。 リンク先のメインページをBではなくBの表示を残したまま間その隣に表示したいです。 『target』はインラインフレームを挿入した『A』とすると新しいウィンドウが表示されてしまいます。 新しいウィンドウを開かずに表示させようとすると、インラインフレームを解除してメインページを開かなければなりません。 説明がわかりづらかったら申し訳ありません。補足など必要でしたら一言お願いします。その都度追加していきます。