- ベストアンサー
画像マップにJavaScriptで違うウィンドウを…
今、Webデザインをしていて、画像イメージにMAP処理をして 新しいウィンドウを開きたいのですが、1つのウィンドウならば開く事ができるのですが 1つのウィンドウを開いて、次のリンクを元ページから クリックして、その『開いた中のウィンドウ』を変える 事はできるのでしょうか? (Aを押すと(マップで)Bが別ウィンドウで開いて Aの違うリンクを押すと、BがCのページに読みこまれて変わる) 取りあえず、MAP処理と言うのがやっぱり、ネックなんでしょうか? 色々、試してみましたが、やぱり出来ませんでした… うう。。。誰か、助けてくださいーー(涙)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
確かに解読するのが難しい質問ですね。 window.open() の第二パラメータはウィンドウ名のはず なので、ウィンドウは使いまわしできると思うんですけ ど・・・毎回オープンしちゃうのがいけないのかなぁ。 リモコンウィンドウを表示させているようですが、結構 面倒ですよね。新しいOKWebのUIも参考にしてみたら いかがでしょう?別ウィンドウにしなくても何とかなる もんです。 もう少し具体的な補足説明があると良いかなぁ。 説明するときは、落ちついて同じ意味の言葉は同じキー ワードで説明したほうが良いですね。 ウィンドウとページってちょっと混同しやすいです。 JavaScript 使わなくても A タグのパラメータを使えば 同じウィンドウを使いまわしできますね。 <A HREF SRC="url" TARGET="window name"> まぁ同じサイズのウィンドウになっちゃいますけどね。
その他の回答 (2)
補足見ました。 function navi_win() { の部分に何も書かれていなければ、 href="javascript:navi_win()" の部分には何も書かなくていいです。これは引数を渡すための物なので。 それから、sigatsuさんに対する補足を見てやっと分かりましたが、下になったウィンドウを上にもって来るには、openではなく、focus()というメソッドを使います。 すでに開いてしまっているウィンドウを上に持って来るには、 w.focus() と記述すればOkです。ただしこのメソッドは、すでに閉じてしまっているウィンドウに対して行うとエラーが返りますから気を付けてください。
なんだか風を吹かせて桶屋を儲からす、みたいな複雑な話になっていますが(笑)、要するにBのウィンドウを使い回したいわけですよね? そういうときはwindow.openメソッドを使う際に、ウィンドウ名を指定すればOkです。 たとえば、 open("./Window_B.htm"); open("./Window_C.htm"); とまあ、上記のような命令がそれぞれ独立して記述されていると思うんですが、このとき、 open("./Window_B.htm","WinName"); open("./Window_C.htm","WinName"); というように、openの第2引数にウィンドウ名を指定してあげます。このとき"WinName"は、統一さえされていれば何でも好きなものでOkです。 なお、MAP処理は見た目に関する物なので関係ありません(笑)
補足
いつもありがとうございます。 と、取りあえずソースを書いてみます。 <script language="javascript"> <!-- function navi_win() { self.window.name="main" w = window.open('', 'Remocon', 'width=400,height=208,status=no,scrollbars=no,directories=no,menubar=no,resizable=no,toolbar=no'); if (w != null) { if (w.opener == null) { w.opener = self; } w.location.href = 'a1.html'; // } } </script> と、言う定義をして (す、すいません、本のを打ち込んだだけなんです…) リンクのところが <area shape="rect" coords="27,95,51,108" href="javascript:navi_win()"> こんな感じなんですけどこの時の "javascript:navi_win()" の()の中はなにもいらないでしょうか・・・? う、うぐぅ。 やはり、本を読んで解読しろって事なのでしょうか… ど、どうかよろしくお願いしますっ。
補足
分かりにくい書き方で申し訳ございません… やはり、僕の中途半端なHTML知識では まだまだ、至らないところばかりです。 なんと、いいますか『JavaScript』じゃなくても よかったのですが、普通にAタグで、新しいウインドウ を開いた場合に、ページのメニューバーや、ツールバー ステータスバー等がでてしまいますよね? それを消したかったので、思いつく方法がなかったので>JavaScriptしかないなぁと。 Aタグにした場合、メインのウィンドウ(以下①)が全画面で次にAタグで開いた別ウィンドウ(以下②)が開いたときはいいのですが、 ①でまた、違うリンクを指定したときに、②のウィンドウは別の②のウィンドウのまま違う内容に変わるのですが ①の下になったままで読みこまれてしまって、 ちょっと見にくいのです。その②を一番上に読み込ませる やり方はないのですか? 分かりにくい文章で申し訳ございません… よろしくお願いいたします。では。