• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:小窓を開くJSで、高さを調節した表示位置を画面の右端にしたい)

小窓を開くJSで、高さを調節した表示位置を画面の右端にしたい

このQ&Aのポイント
  • よく、リンクをクリックすると新規に親窓で開くページがあります。文末はその小窓を画面中央に開く、どこかでみたサンプルです。Excel2003のヘルプ窓のように、高さはクライアント画面の高さを取得して縦幅一杯に、幅は固定値と指定し、場所は右端に表示させたいです。元窓の幅はそのままで、ブラウザ依存せず動作する方が嬉しいです。
  • リンクを開くと画面右端ピッタリに小窓が現れるイメージです。小窓の高さはクライアント画面の高さを取得して縦幅一杯にすることで、効果的な表示を実現します。幅は固定値で指定し、場所は右端に表示させます。元の窓(親窓)の幅はそのまま維持します。このような動作をブラウザ依存せずに実現することが望ましいです。
  • リンクをクリックすると画面右端に小窓が表示されるようにしたいです。小窓の高さはクライアント画面の高さを取得して、縦幅一杯に表示することで効果的な表示を実現します。幅は固定値で指定し、場所は右端に表示させます。元の窓(親窓)の幅はそのままにして、ブラウザ依存せずに動作することが望ましいです。

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

  • ベストアンサー
  • yukio1
  • ベストアンサー率47% (8/17)
回答No.1

あまり要望を満たしていないかもしれませんが・・・ ・JS部 function openNewWin(url, name){ window.open(url, name, 'status=yes,resizable=yes,top=0,left='+getScreenHEIGHT()/2+',width='+getScreenWIDTH()/2+',height='+getScreenHEIGHT()); } //スクリーンサイズから画面サイズ取得(高さ) function getScreenHEIGHT(){ if(!!window.screen){ //N4,N6,Moz,IE,共用 return screen.height-80; }else{ //上記以外 return null; } } //スクリーンサイズから画面サイズ取得(幅) function getScreenWIDTH(){ if(!!window.screen){ //N4,N6,Moz,IE,共用 return screen.width-12; }else{ //上記以外 return null; } } ・HTML呼び出し部 <a href="#" target="new" onClick="openNewWin('komado.html','a'); return false;">

litton101
質問者

お礼

yukio1さん、貴重なレスありがとうございます。 早速確認させていただきました。 縦方向については、画面の上辺、下辺にビシっとあいました。 横方向については、なぜか画面のおおむね中央のやや 右に表示されます。 ちなみに、1600x1200なんですが・・・ ここは、どこを書き換えたら上辺、下辺のように びしっと決まるでしょうか・・ すみません、現状でも十分感動的ですが、もしよろしければ補足的にご教示いただけますと幸いです。 まずは御礼申し上げます。

その他の回答 (2)

  • yukio1
  • ベストアンサー率47% (8/17)
回答No.3

よく考えるといい加減な回答していたので、訂正です。 left='+getScreenWIDTH()*0.7+', width='+getScreenWIDTH()*0.3+', これで、おそらく、理想のものが出来ると思います。

litton101
質問者

お礼

結論からいうと、おっしゃるとおり 100%希望通りの動作を得られました。 感謝にたえません。 また、これからいろいろと使いまわす予定の JSなので、考え方、カスタマイズの仕方など 大変参考になりました。 本当にありがとうございました。

  • yukio1
  • ベストアンサー率47% (8/17)
回答No.2

window.open()関数の第三パラメータを少々いじってやれば可能ではないでしょうか。 現在の第三パラメータの設定は、分割してやると、 status=yes, resizable=yes, top=0, left='+getScreenHEIGHT()/2+', width='+getScreenWIDTH()/2+', height='+getScreenHEIGHT() こうですね。 関係してくるのはtop以下4つです。 topは新しくウィンドウを開く開始位置上辺、 leftは同ウィンドウを開く開始位置左辺、 widthは同ウィンドウの横幅、 heightは同ウィンドウの縦幅です。 上辺と縦幅は問題ないとのことですので、topとheightは変更せずに、 左開始位置のleftと横幅のwidthの値を少々変更してやればよいのではないでしょうか。 ちなみにgetScreenHEIGHT()で取得できる値は画面の縦幅、おそらく1200が取得できるはずです。 getScreenHEIGHT()/2としているので、litton101さんの環境下では、600をセットして いることになると思います。 getScreenWIDTH()も同様に横幅を取得しているので、1600が入ってくるはずなので、 /2しているので、widthは800ということになっているはずです。 と、いった感じの補足でよいでしょうか。