リンク先を新しいウィンドウで表示させ、メニューとかステータスバーを非表示にさせるため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>
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 タグに書いてある内容を利用することができるのです。
回答ありがとうございました。
JavaScriptにはまだ慣れていないもので回答を見たときは「?」と思いましたが、なるほど実際やってみると分かってきます。
一応参考書も読んでいたのですが、このような方法は載っていませんでしたよ。さすが専門家の意見ですね。
今回はとても勉強になりました。
どうもありがとうございました。
No.2
- 回答日時:
#1の方と同じで a href="#" になってるからと思います。
次のように
<a href="javascript:void(0);" onclick='openWin("./test.html")'>テスト表示</a>
#をjavascript:void(0);に置き換えてはどうでしょうか?おそらく直ると思いますよ^^;
こちらでも解決できますね。
a href="javascript:void(0)
と記述できるとは、知りませんでした。
回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- gooブログ Twitterの動画画面をgooブログに埋め込めない 4 2022/06/03 16:40
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
指定時間になったら、WEBサイト...
-
クリックで画像表示、さらに画...
-
window.close()で閉じられない
-
1つのボタンに2つの機能
-
サブウインドウを開くときのフ...
-
javascriptでタイトルバーを非...
-
JavaScriptとアニメーションgif...
-
htmlでテーブル内にテキストボ...
-
CSSのtransform: translate(-50...
-
エクセルでサイズに合ったもの...
-
バーコードのサイズは拡大縮小...
-
<tbody>は何のためにあるんでし...
-
aタグに直接style=""で:hoverを...
-
HTMLフォームのSELECTの幅を一...
-
テーブル内の一部のみ線を変更...
-
chromeだけbody直下に空白が開く
-
フッターだけが真ん中に行って...
-
Excel セルの幅が合わない
-
エクセル 画面表示拡大率によ...
-
table内で画像と文字をセンター...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
指定時間になったら、WEBサイト...
-
window.close()で閉じられない
-
javascriptでタイトルバーを非...
-
HTMLでブラウザを終了させる方法
-
window.openした時、親ウィンド...
-
サブウインドウを開くときのフ...
-
location.hrefの使用条件について
-
『入力文字列 + .html』 に...
-
小窓を表示させたい
-
プルダウンメニューからインラ...
-
【続】 ポップアップ表示の後の...
-
location.hrefで別窓にリンクを...
-
リンクを張り、別窓を表示され...
-
Javascriptを使用したサムネイ...
-
showModalDialogで動的にページ...
-
JavaScriptで画像を横移動
-
window.open _self でとんでく...
-
自動的に小窓を開く
-
トップページをもうひとつ作る...
-
子Windowの操作(親Window遷移後)
おすすめ情報