- ベストアンサー
画像クリック時に3種類のページに、ランダムにリンクさせるには?
こういうことは出来るのでしょうか?お教えください。 トップページに画像を張り、クリックした時に別ウインドウが立ちあがるという設定で… 画像クリックのタイミングによって、別ウインドウの中身が3種類入れ替わるようにするには、どのようなタグを画像に設定すれば出来るのでしょうか。。。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> 切り替わるページはフレーム定義のページ名(a.html)、だけで、b.htmlとc.htmlのところには何と記述すれば良いのでしょうか。。 あれ、もしかして、 トップページ(画像クリック) → 上下フレームページ(下をランダムに変えたい) ということですか?? すみません、ちょっと勘違いしてました^^; これだったら、上下フレームページ(フレーム定義HTML)に細工をすればOKです。 (トップのHTMLでは、普通にフレームページにリンクすればOKです。) <HTML> <HEAD> <TITLE>FRAMESET</TITLE> <SCRIPT language="JavaScript"><!-- var page = new Array( 'a.html' ,'b.html' ,'c.html' ); function choose_page() { var dt = new Date(); var index = Math.ceil(dt.getTime() / 1000) % page.length; open(page[index],"main",""); } //--></SCRIPT> </HEAD> <FRAMESET rows="30%,*" onLoad="choose_page()"> <FRAME name="menu" src="ue.html"> <FRAME name="main" src="about:blank"> ← about:blank にしておく </FRAMESET> </HTML>
その他の回答 (4)
- madman
- ベストアンサー率24% (612/2465)
補足見ました。 なるべく最初にやりたいことを全部書いてください。 ---- フレーム側ソース --- <HTML> <FRAMESET rows="150,*"> <FRAME SRC="ctrl.html" NAME="_header"> <FRAME NAME="_body"> </FRAMESET> </HTML> --- ctrl.html --- <HTML> <HEAD> <script type="text/javascript"> var flag=0; function viewURL() { var _url= ["http://www.yahoo.co.jp/","http://www.goo.ne.jp/","http://www.google.co.jp/"]; t = Math.floor(Math.random()*_url.length); top._body.location=_url[t]; } </script> </HEAD> <BODY> <A HREF="javascript:viewURL()"><IMAGE SRC="img1.jpg"></A> </BODY> </HTML>
お礼
ありがとうございました。 動きます。 文才がなく申し訳ありません。けど、ランクアップできました。
- leaz024
- ベストアンサー率75% (398/526)
> 切り替えたページというのはフレームで分割されたもので、下側のフレーム部分だけが3つ切り替わるようにしたいのです。 > その場合は、やはり、切り替わる3つのファイル分の「フレームセットのページ」を作成するしか無いのでしょうか? いやいや、そんなことはないですよ。 フレームを定義している HTML の FRAME タグに、name 属性は指定していますか? その name の値を open 関数の第2パラメータに指定すれば、指定したフレームのページが切り替わります。 (open 関数は、第2パラメータに指定された名前のウィンドウがなければ新たにウィンドウを開き、既にあればそのウィンドウに別のページを表示します。) ■フレーム定義のFRAMEタグには、nameを指定する。 <FRAMESET rows="30%,*" …> <FRAME name="menu" src="ue.html"> <FRAME name="main" src="shita.html"> → 下側の名前を main にしたら… </FRAMESET> ■クリックされた時の処理を、No.2の var win = open(page[index], "NewPage", ""); から、 var win = open(page[index], "main", ""); ← ここも main にする とする。
補足
駄目です。やってみましたがうまく行きません。 No.2の var page = new Array( // ページのURL 'a.html' ,'b.html' ,'c.html' ); とありますが、切り替わるページはフレーム定義のページ名(a.html)、だけで、b.htmlとc.htmlのところには何と記述すれば良いのでしょうか。。 素人で申し訳ありません。宜しくお願いします。
- leaz024
- ベストアンサー率75% (398/526)
madman さんが、ランダムにページを表示する方法を挙げていますので、指定秒数ごとに表示されるページを切り替える方法を示します。 <HTML> <HEAD> <SCRIPT language="JavaScript"><!-- var index = 0; var interval = 2000; // 切り替えタイミング(ミリ秒) var page = new Array( // ページのURL 'a.html' ,'b.html' ,'c.html' ); function count_up() { index = (index + 1) % page.length; setTimeout("count_up()", interval); } function open_page() { var win = open(page[index], "NewPage", ""); win.focus(); } //--></SCRIPT> </HEAD> <BODY onLoad="count_up()"> <A href="javascript:open_page()"><IMG src="***"></A> </BODY> </HTML>
補足
ありがとうございます。すばらしいです。 ところで、もう少し複雑なケースの場合についてお尋ねして宜しいでしょうか? 切り替えたページというのはフレームで分割されたもので、下側のフレーム部分だけが3つ切り替わるようにしたいのです。その場合は、やはり、切り替わる3つのファイル分の「フレームセットのページ」を作成するしか無いのでしょうか?
- madman
- ベストアンサー率24% (612/2465)
こんなのでしょうか Mathを利用し、乱数を発生させ、0~3をランダムに変えさせています。 flagで1回目だけ新しいブラウザを開き、2回目以降は同じブラウザの中身だけ変えています。 --- <HTML> <HEAD> <script type="text/javascript"> var flag=0; function viewURL() { var _url= ["http://www.yahoo.co.jp/","http://www.goo.ne.jp/","http://www.google.co.jp/"]; t = Math.floor(Math.random()*_url.length); if (flag == 0) { subwin = window.open(_url[t],"subwin"); flag = 1; } else { subwin.location.href=_url[t]; } } </script> </HEAD> <BODY> <A HREF="javascript:viewURL()"><IMAGE SRC="img1.jpg"></A> </BODY> </HTML>
補足
ご回答頂きありがとうございました。すばらしいです。 ところで、追加で質問しても宜しいでしょうか? 切り替えるページというのはフレームで分割されたもので、下側のフレーム部分の内容だけが3つに切り替わる…というようにしたいのですが、その場合これ以上のページを作成しなくても切り替わるようにするのは可能でしょうか?
お礼
ありがとうございました。 出来ました。完璧です。 javascriptとは奥が深いものですね。いろいろと勉強になりました。