• ベストアンサー

ウィンドウサイズを変更するには?

ウィンドウサイズを変更したいと思っています。別ウィンドウを開く時にサイズを指定するのではなく、現在のウィンドウについてです。 window.resizeTo(wSize, hSize); では外枠を含んだサイズになるようで、インナー(実際見ているサイズ)を指定してあげたいと思っています。IE、NS、MAC、WIN等書き分けないといけないように思いますが、どなたかサンプル等教えて頂けないでしょうか。 よろしくお願い致します。

  • fmx
  • お礼率35% (5/14)

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

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

Windows+一部のブラウザのみでの確認なので自信なし。 function client_resizeTo(width, height) {   if (document.layers) {  // for NN4     window.resizeTo(width, height);     window.resizeTo(width, height);   } else {     window.resizeTo(width*2, height*2);     var client_width = document.body.clientWidth;     var client_height = document.body.clientHeight;     window.resizeTo(width*3-client_width, height*3-client_height);   } } NN4 での resizeTo() は、引数をクライアント領域のサイズとしてウィンドウサイズを調整するようです。 しかし、リサイズによってウィンドウメニューの折り返しが行われると、高さが足りなくなってしまいます。 このため、幅調整用、高さ調整用の2回分の resizeTo() を実行しています。 IE および NN7 では、document.body.clientWidth (または .clientHeight)でクライアント領域のサイズを知ることができます。 これを使い、目的のサイズで resizeTo() を行った後のクライアント領域のサイズを測り、不足分を調整して再度 resizeTo() を実行します。 これだけなら     window.resizeTo(width, height);     var client_width = document.body.clientWidth;     var client_height = document.body.clientHeight;     window.resizeTo(width+width-client_width, height+height-client_height); でいいのですが、これでは1度目のリサイズで入ってしまったスクロールバーが消えた分の調整ができないため、1度目のリサイズでスクロールバーが出ない大き目のサイズにして調整を行っているのです。 ちなみに client_resizeTo() は、BODYタグの onLoad イベント時、またはそれ以降でないと利用できません。 また、ページマージンが0になるよう、BODYタグを調整しておく必要があります。 (つまり、BODYタグに topmargin=0 leftmargin=0 marginwidth=0 marginheight=0 を指定しておく。) ※スクリプトのインデントに全角空白を使っているので、コピペするときは半角空白かタブに置き換えてください。

fmx
質問者

お礼

ご回答ありがとうございます。 IEでは上手くいきましたが、NN6ではうまくいきません。clientWidthをサポートしていないようで。 すごくヒントになりましたので、大変嬉しく思っています。ちょっといじってみたいと思います。

関連するQ&A

  • ウィンドウサイズを開いたときと同じサイズにリサイズしたい

    お世話になります。 window.openで1012×654のウィンドウを開いているのですが、ウィンドウサイズを変更した場合に元に戻したいことがあります。 そこで、resizeTo(1012,654)を実行するとwindow.openで開いたときよりも縦、横ともに小さくなってしまいます。 おそらく、resizeToはタイトルバーなどの部分を含まないサイズになっているような気がするのですが。。 宜しくお願いします。

  • 新しいウィンドウのサイズについて

    新しいウィンドウのサイズを指定する方法に、resizeToと'width=***,height=***'があります。 私が試したところ、resizeToだとそれ以降に開くウィンドウのサイズが全てresizeToで指定したサイズになってしまいます。また後者の横縦サイズを指定する方法だと、そのときにだけ反映されるようです。このような仕様なのでしょうか。 そうだとすると、resizeToは使う場面が限られてくるように思えます。”このウインドウだけに反映する”といったオプションがあるのでしょうか。 よろしくお願いします。

  • ウィンドウサイズを固定する方法

    HPのトップを開いたときから、表示サイズを 横703×縦662pxで表示させたいです。 以下のようなソースで記載しているのですが、 今のものだと、IEでは表示サイズが横703×縦662pxのものを 表示できるのですが、ブラウザごとに違ってくるので、 firefoxなどでは横735×縦839pxで指定すると大きすぎるのです。 ___________________________ //ウインドウサイズの変更 function changesize(){ window.resizeTo(735,839);//サイズの指定 } window.onload = changesize; //ページの読み込み時に関数を呼び出す window.onresize = changesize; //ウィンドウサイズの変更時に関数を呼び出す ___________________________ 以前の質問欄にて、Body部(ツールバーとかスクロールバーとかを省いた)のサイズが↓このような値であると記載されていたのですが、 これをどのように活用したらいいのかわかりません。 document.body.offsetWidth document.body.offsetHeight どなたかご存知の方いらっしゃいますでしょうか? また、safariでは現在まったくサイズが動かないのです。 safari(MAC)、IE6,7(WIN)、firefox(WIN)での 対応がベストなのですが、それも含めて、 どなたかご存知の方いらっしゃいますでしょうか? よろしくお願いします。

  • ウィンドウサイズの変更

    <a href="javascript:resizeTo(800,600);location.href='sample.html';">sample</a> で、ウィンドウが800×600に変更されますよね。 この際、同時にツールバーやステータスバーなどを非表示にするにはどうすればよいのでしょうか?

  • ウインドウサイズの指定

    お世話になっております。 webページのウインドウサイズ指定をしたくて、 window.resizeTo・・でピクセル指定をしたのですが NetscapeとExplorerのサイズが全然違うんです。 両者とも、動作は確認できるのですが(バージョンも5.0ですし)、違う大きさにresizeしてしまうのです。 考えられる原因、または違う対処法等ありましたら教えてください。 よろしくお願いいたします。

  • javascriptでウィンドウのサイズ等を指定するには…

    色々な諸事情があって、新しく開くウィンドウのサイズを、親ウィンドウで指定するのではなく、新しく開く子ウィンドウ自身でサイズを指定する方法を探しておりました。 すると、以下のようなjavascriptが見つかったので試してみたところ、希望どうりにサイズを指定して開くことができたのですが、アドレスバーやツールバーなどもある形でウィンドウが開いてしまいます。タイトルバーとスクロールバー以外は表示しないようにしたいのですが、どのように記述したら良いのでしょうか。javascriptのことはわからないので、実際に書く記述をコピー&ペーストで試せるような形で教えていただけると助かります。宜しくお願いいたします。 <SCRIPT TYPE="text/javascript"> <!-- window.resizeTo(300, 300); //--> </SCRIPT>

  • SEOにも有効なウィンドウサイズ指定

    ボリュームのあるページを運営しているのですが、 トップページ以外はwindow.open()のJavascriptでウィンドウサイズの指定を行っているので、 googleなどのクローラーがトップ以外は見ていってくれていないようなんです‥。 そこで質問なのですが、深く下の層までクローラーが入って来れるような ウィンドウのサイズ指定はありませんでしょうか。 resizeTo以外でお願いできればと思います。 とんちんかんな質問ですみません。宜しくお願い致します。

    • ベストアンサー
    • HTML
  • ウインドウのサイズを指定して開きたいのですが・・

    ウインドウのサイズを指定して開きたく、JavaScriptで記述したところ、MacのIE5ではきちんと表示されるのですが、WindowsのIE4.5で見ると、エラーが出てしまい、見ることができません。どうしてでしょうか? 宜しくお願いします。

  • 別ウインドウのサイズ

    Dreamweaver8 mac osxにて作業をしております。 リンク先を別ウインドウにて開くように設定しておりますが、WINのIEで確認するとどうしても小さいウインドウ枠になります。 ビヘイビアで縦、横のサイズを指定する以外に、「現在開いているウインドウ枠と同じサイズで別ウインドウを開く方法」があれば教えて下さい。 よろしくお願い致します。

  • フレームページの画面サイズ設定

    トップ、メイン、アンダーって縦に3つに別れたフレームで画面サイズの設定をしたいのですが、どの様にすればよろしいでしょうか? また、WINとMACでサイズが違う様にしたいです。 下記まではできたのですが、ブラウザーを立ち上げてもサイズが設定できません。 <script type="text/javascript"> <!-- function test(){ if(navigator.platform=="MacPPC"){ window.resizeTo(500,500); }else{ window.resizeTo(750,600); } } //--> </script> <body bgcolor="#FFFFFF" text="#000000" onload="javascript: test();"> よろしくお願いします。

専門家に質問してみよう