• ベストアンサー

JavaScript サブウィンドウを開くときの親ウィンドウ

親ウインドウ画面が、縦に長いときに 下のほうへにスクロールしたまま、 サブウィンドウを開くと 親ウィンドウ画面が 一番上へ戻ってしまいます。 親ウィンドウを下にスクロールしたままにして、 サブウィンドウを開きたいです。 親ウィンドウを下にスクロールしたまま サブウィンドウを開く方法を教えてください。 よろしくお願いします。

  • anbz3
  • お礼率58% (7/12)

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

  • ベストアンサー
  • taseki
  • ベストアンサー率66% (155/233)
回答No.3

> なぜ、なるべく「href="javascript~」と書かないほうが良いのですか。 > 参考までに聞きたいです。お時間が空いたらでいいので教えてください。 まぁ一番の理由は、W3Cのアクセシビリティ・ガイドラインが書くなと言っているので。 http://www.w3.org/TR/WCAG10-HTML-TECHS/#scripts-gt scriptが動かない環境の場合、完全にデッドリンクになってしまいます。 <a href="sub_page.html" onclick="window.open('sub_page.html',null);return false;">ウィンドウを開く</a> と書けば、scriptが動かない場合は通常のリンクとして働くので、より多くの人に見られるようになります。 さらに、「href="javascript~」と書いた場合、ほとんどのブラウザはリンクテキストのクリックを「ページジャンプ」と見なすので、表示されているページがリセット(表示または動作中止)されます。にも関わらず、そのうえ場合によってはジャンプもしない。 ためしに、GIFアニメーションなどを表示したページに「href="javascript~」を書いてクリックしてみてください。アニメーションが止まってしまいます。 (環境によりますが) なお、これはウィンドウを開くだけでなく他のスクリプトも同様です。 たった今達成されたイシンバエワの世界新とは違って、ジャンプさせないほうがいいですね。

anbz3
質問者

お礼

丁寧なご返答ありがとうございました。大変勉強になりました。感謝です。

その他の回答 (2)

  • taseki
  • ベストアンサー率66% (155/233)
回答No.2

推測ですが、 <a href="#" onclick="window.open('sub_page.html',null)">ウィンドウを開く</a> のように書いていませんか? もしそうなら、以下のように変えてみてください。 <a href="sub_page.html" onclick="window.open('sub_page.html',null);return false;">ウィンドウを開く</a> また、なるべく「href="javascript~」とは書かないほうが良いですよ…。

anbz3
質問者

補足

ありがとうございます!問題解決しました! すごく助かりました。 なぜ、なるべく「href="javascript~」と書かないほうが良いのですか。参考までに聞きたいです。お時間が空いたらでいいので教えてください。

noname#22328
noname#22328
回答No.1

多分、a herf="" にアクションを仕込んでいませんか? onClickで指定すれば、ご希望の操作になると思うのですが...。 <a href="javascript:void(0);" onClick="window.open()"></a> void(0); が、たしか何もしないってことだったと思います。 手元に辞書が無いので確認してませんが(^^;

anbz3
質問者

お礼

すごく参考になりました!問題解決になりました。ありがとうございました。

関連するQ&A

  • 縦に長い親ウィンドウの下の方からサブウィンドウを開いても、親ウィンドウの表示内容の位置が変わらないようにしたい!

    onClick="MM_openBrWindow('price.html','','scrollbars=yes,width=620,height=620')" 上記のようにprice.htmlをサブウィンドウとして開いているのですが、縦に長い親ウィンドウページの下の方にサブウィンドウを開くボタンを置くとクリックしたときに、親ウィンドウページの表示部分が下の方から一気に一番上になってしまいます。(Windows XP SP2, IE 6.0) 親ウィンドウはサブウィンドウを開くときに見ていたままにしておきたいのですが、どうしたらよいでしょうか? とほほさんのページなど読みましたが、わかりませんで、大変困っております。 (javascriptもDreamWeaverMX2004のビヘイビアで設定しているような者なので・・・) どなたが教えていただけるとありがたいです。 なにとぞよろしくお願いいたします。

  • サブウィンドウから親ウィンドウのファンクションを起動

    おせわになっております。 サブウィンドウから親ウィンドウのファンクションを起動する方法について困っています。 親ウィンドウから var subWin = window.open("a.html", "sub") でオープンしたサブウィンドウを閉じる場合に サブウィンドウから親ウィンドウの function sub_close() { subWin.close(); } を呼び出して閉じる処理をしています。 (サブウィンドウでwindow.opener.sub_close()) #これは正常に処理されます。 ここで問題なのですが、サブウィンドウがフレームの場合に、フレームセットされたHTMLから window.opener.sub_close() というような方法では親画面の操作ができないのでしょうか?(できませんでした。) 初歩的な質問で申し訳ないのですが、何かよい方法があれば教えてください。 宜しくお願いします。

  • ▲▲サブウィンドウから親ウィンドウ操作など▲▲JavaScriptに詳しいかた見てください。

    大変ややこしい質問をさせて頂きます♪いつもお答えくださる皆様に感謝致します☆ まず親ページとなる「index.html」があったとします、そこからサブウィンドウを開きます「sub.html」。サブウィンドウには3つのリンクが張ってあります。 1.123 2.456 3.789 例えば、3つのうちの2番「456」をクリックした再に、サブウィンドウ「sub.html」を閉じ、さらに親ページ「index.html」を新たに様をした「xmas.html」に変更する事は可能でしょうか?? サブウィンドウのリンクをクリックすることによって、サブウィンドウを閉じ、親ページを変更するといった具合です。 可能だと思い調べたのですが…。知恵足らずで理解できずにいます。おわかりになる方いらっしゃいました、是非タグなどもそえてお教えいただきたいと思っております。よろしくお願いします♪

  • サブウィンドウと、親ウィンドウについて

    これは、データベース絡みでの質問になると思いますがよろしくお願いします。 ここの前の質問でも同じようなものがあり、流用できたらと試してみましたがうまくいきません。それは、以下の手順によってデータを操作しようと考えているのですが・・・ (1)親ウィンドウにサブウィンドウを呼び出すボタンを設置する。 (2)呼び出されたサブウィンドウにデータを入力すると親ウィンドウのデータも一緒にデータベースに登録される。 と、いう手順でしたいと考えており、サブウィンドウ側に、 function copy(){ document.form1.text1.value = opener.parent.left.document.form2.text1.value; } とし、サブウィンドウに親ウィンドウからデータを持ってくるために <input type="hidden" name="text1" onChange="copy()"> という隠しフィールドを設け、親からデータを格納させています。 また、上にある、「left」は親をフレームわけしているのでフレーム名です。(持ってくるデータは、form1にあり、そこにボタンを設置しています)説明不足でしたら補足いたしますので、よろしくお願いします。考え方でも結構です。

  • サブウィンドウを開くと親ウィンドウが上に戻ってしまう

    ページ途中のリンクからJavaScriptでサブウィンドウを開くとき、親ウィンドウが上に戻ってしまいます。 これをリンク位置でサブウィンドウが開くようにしたいのです。 どのようにすれば親ウィンドウが動かなくなりますでしょうか。 サブウィンドウ用のJavaScript function wopen1(){ window.open("aaa.htm","plain","scrollbars=yes"); } リンク側 <a href="#" onClick="wopen1()"> どうぞよろしくお願いいたします。

  • サブウィンドウの親の位置

    こんにちわ。 メインウィンドウから、サブウィンドウを開くようになっています。 メインウィンドウが縦に長く(文章量が多い)、下の方のリンクでサブウィンドウを開いたときに、メインウィンドウの画面がページの上の方に移ってしまいます。 クリックした場所を維持したいのですが、調べてみたのですが、やり方がわかりません。 すみませんが、よろしくお願いします。 <script> <!-- function MM_openBrWindow(theURL,winName,features) { window.open(theURL,winName,features); } //--> </script> ▼メイン・リンク部分 <a href="#" onClick="MM_openBrWindow('info.html#1','info','width=380,height=500,scrollbars=yes,resizable=yes')">※1</a>

  • サブウィンドウから親ウィンドウの数値更新・・

    JAVASCRIPTで、親ウィンドウから、サブウィンドウを開き、 サブウィンドウから、元々0であった、親ウィンドウのテキ ストボックスに数字を入れました。 しかし、テキストボックスには数字が入っているのですが、 親ウィンドウのソースをみてもテキストボックスの値は、0 のままです。 親ウィンドウをリロードすればソースも変わるので良いので すが、リロードはしたくありません。 そのテキストボックスの数字をみて処理を分岐しなければな らないので、ソース自体の数値が変わらないと、その値が読 めず困っています。 どういう対処方法がありますでしょうか?

  • サブウィンドウから親ウィンドウをリロード

    サブウィンドウから親ウィンドウをリロードするときに、 window.opener.location.href = "A.html"; のような使い方をしていますが、親ウインドウのアドレスを指定せずに行う方法がありましたら教えていただけないでしょうか。

  • サブウィンドウを複数表示できないようにしたいのですが

    現在、親ウィンドウでボタンが押されたらwindow.openで サブウィンドウを表示していますが、サブウィンドウを最小化したり 親ウィンドウにフォーカスが移ったときに親ウィンドウのボタンが 押されたら再びサブウィンドウが開いてしまいます。 再び開かないようにするにはどうしたらいいのでしょうか 常にサブウィンドウを前画面にする(<body onBlur="focus()">)方法は わかったのですがこれではフォーカスが移れません。 フォーカスは移れるようにしたいのですが よろしくお願いします。

  • サブウィンドウを開くタイミングで親ウィンドウからデータを渡す

    親ウィンドウ、サブウィンドウを両方開いた状態でデータを受け渡す方法は見かけるのですが、 サブウィンドウを初めて開くタイミングで親ウィンドウからデータを渡す方法はありますでしょうか? 現在以下のように書いています。 親ウィンドウ function openLicense(sub, index){ w = window.open('', 'publish', 'toolbar=no,); w.document.open(); w.document.form.password_index.value=index; document.form.submit(); w.focus(); } サブウィンドウ <input name="password_index" type="HIDDEN" value=""> が、「w.document.form.password_indexはnullまたはオブジェクトではありません」 とエラーになります。何かいい方法はないでしょうか。

専門家に質問してみよう