- ベストアンサー
親ウインドウから子ウインドウと同時にID
親ウインドウから、子ウインドウを開く際に、子ウインドウ内のID=”レイヤー″を同時に呼び、子ウインドウを変化させるスクリプトがありましたら教えてください。 ID="レイヤー"は複数です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#1です。わかりました。 親ウィンドウの変更点 ・OpenWinを呼ぶとき番号を指定する <A href="javascript:OpenWin(1)"><IMG src="000.gif" width="200" height="150" border="0"></A> ・OpenWin関数 function OpenWin(ID){ win1=window.open("page1.html"+"?"+ID,"new1","width=600,height=600"); } 子ウィンドウのサンプル。 <html> <head> <title></title> <style type="text/css"> #Layer0 div {display:none;} </style> <script type="text/javascript"> var ViewId = location.search.match(/\d+/); var STYLESHEET = document.styleSheets[0]; if ('undefined' != typeof STYLESHEET.cssRules) { STYLESHEET.insertRule('#Layer0 #Layer'+ViewId+' {display:block}', 0); } else { STYLESHEET.addRule('#Layer0 #Layer'+ViewId, "display:block"); } </script> </head> <body> <div id="Layer0"> <DIV id="Layer1">~1~</DIV> <DIV id="Layer2">~2~</DIV> ・・・以下、好きなだけ・・・ </div> </body> </html>
その他の回答 (3)
- steel_gray
- ベストアンサー率66% (1052/1578)
#1です。 残念ながら子ウィンドウに元から書かれているというスライドショー(?)のスクリプトが私には理解不能だったので組み合わせる方法もわからないです。 (全貌がわからないので違うかもしれませんが、#3の回答は全く不要で、元のスクリプトというのを少しばかり手直し・流用すればよかっただけなのかもしれません。)
お礼
早速のご意見ありがとうございます。 今回のご回答は本当に参考になり、勉強になりました。 子ウインドウの中でさらに、順に個別表示が可能なのかつけ加えたく考えておりました。 いろいろ試したり、またこちらのサイトで聞いたりしてみます。 #3の回答はありがたく使用させて頂きます。 本当に有難う御座いました。
補足
早速のご意見ありがとうございます。 今回のご回答は本当に参考になり、勉強になりました。 子ウインドウの中でさらに、順に個別表示が可能なのかつけ加えたく考えておりました。 いろいろ試したり、またこちらのサイトで聞いたりしてみます。 #3の回答はありがたく使用させて頂きます。 本当に有難う御座いました
- steel_gray
- ベストアンサー率66% (1052/1578)
#1です。 前回の補足ですと、「9つのレイヤーが在る」という事しかわからないです。 レイヤーをどうしたいのでしょうか?
補足
ありがとうございます。 親ウインドウからは各9種類のimg画像を用意してあります。その9種類のimg画像全てから、同じ子ウインドウが開く様にしてあります。そして親ウインドウの同img画像と、子ウインドウの同レイヤーを指定して、子ウインドウが開くときに表示したいのです。 子ウインドウは複数作らないで、一つの子ウインドウの中でにしたいのです。 親ウインドウには下の様に書いてあります。 <A href="javascript:OpenWin1()"><IMG src="000.gif" width="200" height="150" border="0"></A> <A href="javascript:OpenWin1()"><IMG src="001.gif" width="200" height="150" border="0"></A> <A href="javascript:OpenWin1()"><IMG src="002.gif" width="200" height="150" border="0"></A> <A href="javascript:OpenWin1()"><IMG src="003.gif" width="200" height="150" border="0"></A> <A href="javascript:OpenWin1()"><IMG src="004.gif" width="200" height="150" border="0"></A> <A href="javascript:OpenWin1()"><IMG src="005.gif" width="200" height="150" border="0"></A> <A href="javascript:OpenWin1()"><IMG src="006.gif" width="200" height="150" border="0"></A> <A href="javascript:OpenWin1()"><IMG src="007.gif" width="200" height="150" border="0"></A> <A href="javascript:OpenWin1()"><IMG src="008.gif" width="200" height="150" border="0"></A> 例えば、 <A href="javascript:OpenWin1()"><IMG src="005.gif"~></A> をクリックした時は、子ウインドウの表示内容が <DIV id="Layer5"><IMG src="4.gif" width="600" height="450" border="0"></DIV>が表示される様にしたいのですが... 説明不足・へたですいません。 どうぞよろしくお願いいたします。
- steel_gray
- ベストアンサー率66% (1052/1578)
>子ウインドウ内のID=”レイヤー″を同時に呼び、子ウインドウを変化させる このあたり、何を呼び、子ウィンドウをどう変化させるのかがわかりません。 子windowを開くときに情報を付加する事はできるし、 それを受取って判別し、なにかをする事はできます。 window.open('example.html?id=abc',~ id=abc という情報を渡す。 渡されたexample.htmlではlocation.searchという変数を参照して値を取り出す。
補足
ありがとうございます。 補足で申し訳ありませんが、今現在記述している内容は、 親スクリプト function OpenWin1(){ win1=window.open("page1.html","new1","width=600,height=600"); } 子ウインドウ <DIV id="Layer1"><IMG src="0.gif" width="600" height="450" border="0"></DIV> <DIV id="Layer2"><IMG src="1.gif" width="600" height="450" border="0"></DIV> <DIV id="Layer3"><IMG src="2.gif" width="600" height="450" border="0"></DIV> <DIV id="Layer4"><IMG src="3.gif" width="600" height="450" border="0"></DIV> <DIV id="Layer5"><IMG src="4.gif" width="600" height="450" border="0"></DIV> <DIV id="Layer6"><IMG src="5.gif" width="600" height="450" border="0"></DIV> <DIV id="Layer7"><IMG src="6.gif" width="600" height="450" border="0"></DIV> <DIV id="Layer8"><IMG src="7.gif" width="600" height="450" border="0"></DIV> <DIV id="Layer9"><IMG src="8.gif" width="600" height="450" border="0"></DIV> この様に記述しております。 私が理解不足で申し訳ありませんが どの様に組み込んで記述するのか具体的にお教えてください。
お礼
今回丁寧にお教え頂きありがとうございました。 お礼が遅くなり申し訳ございません。完璧に動作いたしました。いろいろ出来ることがあるんだな~と、自分の知識不足を実感しました。 また、お時間がありましたら、もう一つお聞きしたいことがあるのですが、子ウインドウにすでにスライドショー的なスクリプトを用意してある場合、今回の教えて頂いたスクリプトと併用して作動させるには、どの様にしたらいいか教えていただければ幸いです。ひき続きの質問もうしわけありません。
補足
今回は丁寧に回答して頂きありがとうございました。 さきほどのお礼文に記載した子ウインドウのスクリプトは //----------------------------------●レイヤー名 Lay = new Array("Layer1","Layer2","Layer3","Layer4","Layer5","Layer6","Layer7","Layer8","Layer9") //----------------------------------●Next/Back cnt = 0 function NextBack(flag) { //flag---Nextは1、Backは-1 ShowHide(Lay[cnt],0)//前のものを非表示 cnt = (cnt+flag+Lay.length)%Lay.length ShowHide(Lay[cnt],1)//次のものを表示 } //----------------------------------●個別に表示 function Change(num) { ShowHide(Lay[cnt],0)//非表示 ShowHide(Lay[num],1)//表示 cnt = num } //----------------------------------●スライドショー timerID = null function SlideShow(flag) { if(timerID==null) { timerID = setInterval("NextBack("+flag+")",5000) //1秒間隔 } else { clearInterval(timerID) timerID = null } } 子ウインドウに記述してあります。今回の教えて頂いたスクリプトと併用して作動させるには、どの様にしたらいいか教えていただければ幸いです。ひき続きの質問もうしわけありません。