• ベストアンサー

window.openした時、親ウィンドウのドキュメントがトップに戻る

リンク先を新しいウィンドウで表示させ、メニューとかステータスバーを非表示にさせるためwindow.openを使用しています。 上記のようにして、子画面を表示することは問題無く出来ているのですが、リンクボタンを押した親画面ドキュメントが、いわゆる「トップに戻る」ボタンを押したときのような動きをしてしまいます。 なんとか親画面側のこの「トップに戻る」動きをやめさせたいのですが、解決法はありますか? ソースは以下のようにしています。 <script language="javascript"> <!-- function openWin(url){ window.open(url, "newwin", "menubar=no,location=no,status=no"); } //--> </script> <a href="#" onclick='openWin("./test.html")'>テスト表示</a>

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

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.3

これは、onClick の処理が実行された後に、A タグ本来のジャンプ動作(ここでは href="#"、つまりページトップへのジャンプ)が行われるのが原因です。 JavaScriptが有効な場合のみ動作すればよいのであれば、   <a href="javascript:openWin('./test.html')">~</a> で解決できます。 しかし、普通はJavaScriptが有効でない環境のことも考慮して、A タグを   <a href="./test.html" target="newwin" onClick="return openWin(this)">~</a> のようにし、また関数の方を   function openWin(a) {     window.open(a.href, a.target, "~");     return false;   } のようにします。 こうすると、JavaScriptが有効でない場合は A タグの動作でページが開き、有効な場合は openWin() の動作でページが開きます。 ※1:onClick="~" の中で return を使うと、return の値が「真」の場合はタグの動作が実行され、「偽」の場合はタグの動作がキャンセルされます。 上の例ではこれを利用し、JavaScriptの有無に対応しているのです。 ※2:openWin() の呼び出しで引数になっている「this」は、この A タグ自身(を表すオブジェクト)のことです。 これを変数 a で受け取ったので、a.href や a.target で、A タグに書いてある内容を利用することができるのです。

sisyou
質問者

お礼

回答ありがとうございました。 JavaScriptにはまだ慣れていないもので回答を見たときは「?」と思いましたが、なるほど実際やってみると分かってきます。 一応参考書も読んでいたのですが、このような方法は載っていませんでしたよ。さすが専門家の意見ですね。 今回はとても勉強になりました。 どうもありがとうございました。

その他の回答 (2)

  • howsike
  • ベストアンサー率58% (18/31)
回答No.2

#1の方と同じで a href="#" になってるからと思います。 次のように <a href="javascript:void(0);" onclick='openWin("./test.html")'>テスト表示</a> #をjavascript:void(0);に置き換えてはどうでしょうか?おそらく直ると思いますよ^^;

sisyou
質問者

お礼

こちらでも解決できますね。 a href="javascript:void(0) と記述できるとは、知りませんでした。 回答ありがとうございました。

  • shy00
  • ベストアンサー率34% (2081/5977)
回答No.1

a href="#" になっているために、TOPに戻っています <a href="#" onclick='openWin("./test.html")'>テスト表示</a> の近くに<a name="***">というものを記載し <a href="#***" onclick='openWin("./test.html")'>テスト表示</a> にしてはいかがですか?

sisyou
質問者

お礼

この方法は私も考えましたが、根本的な解決にはならないなと思ってやめました。(^^; 回答ありがとうございました。

関連するQ&A