• 締切済み

JavaScriptでウィンドウを操作する方法

"index.html"は水平方向に2分割のフレーム構成で、それぞれ「menu」「body」というnameがついています。 いま、「body」側のsrc"body1.html"にJavaScriptのソースを書いているのですが、"body1.html"中のある文字列をクリックしたら (1)新しいページ「new.html」が別ウィンドウで開く。 (2)もとの「body」側のページが"body2.html"に遷移する(フレームは解除しない)。 上記2つの処理が一度に出来るスクリプトを書きたいのです。 window.open()で(1)を書いてしまうと、(2)の分の処理がうまく動きません。 どなたか教えていただけないでしょうか??

みんなの回答

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.4

new.htmlを新しく開くというと動作と、body側をbody2.htmlに書き換える動作の関連性しだいですが、 単純にbody2.htmlのほうでnew.htmlをwindow.openで新しく開くという方法もありますね。 ページを開くと同時に新しいwindowをopenするのはポップアップブロッカーの類にひっかかる確立が高くなるけど。

scorebook
質問者

お礼

なるほどですね。「onload」だとSP2以降あまりよろしくないかもしれませんが、気づきませんでした。ありがとうございます。

  • N_A_O
  • ベストアンサー率66% (37/56)
回答No.3

function openWin(){window.open("new.html");} //(1)新しいページ「new.html」が別ウィンドウで開く。これはいいやね。 function setFrame(jpURL){ parent.body.location.href= jpURL;} //(2)もとの「body」側のページが"body2.html"に遷移する(フレームは解除しない)。 <A href="javascript:openWin('');setFrame('body2.html')">LINK</A>

scorebook
質問者

お礼

すみません、やはり(2)の処理がうまくいきませんでした。私の書き方が悪かったのかもしれません。 一応、以下の記述でうまくいきそうなことがわかりました。 ------------------------ function link(){ location.href = "body2.html" window.open("new.html","top"); } <a href="JavaScript:link()">文字列</a> ------------------------ ありがとうございました。

  • bita_2005
  • ベストアンサー率42% (6/14)
回答No.2

<A href="new.html" target="_blank" onclick="parent.body.location.href='body2.htm'">body1.html中のある文字列</A> これでいいのではないでしょうか?

scorebook
質問者

お礼

これだと、(1)の処理はできますが(2)は動かないのです。 新しいウィンドウを開きながら、同時に元のフレームでもページを遷移させたいのですが。。。

  • zgmfx10a
  • ベストアンサー率9% (1/11)
回答No.1

location を使用されてはいかがでしょうか? パクリは何かと問題ありますので、参考URLをご覧ください。

参考URL:
http://www.tohoho-web.com/js/location.htm
scorebook
質問者

お礼

ありがとうございました。 でも、locationをどうやって(1)(2)同時の処理に使うかがわからないのです。。。

関連するQ&A