
よく、リンクをクリックすると新規に親窓で開くページがあります
文末はその小窓を画面中央に開く、どこかでみたサンプルです。
ここで、Excel2003のヘルプ窓のように、次のように動作させたいです。
(1)高さはクライアント画面の高さを取得して縦幅一杯に(例:768、600px等可変に)
(2)幅は固定値(例:200px等と指定)
(3)場所は右端(各クライアントの画面の幅-小窓幅(例:200px)=小窓の左上角)
(4)元窓(親窓)の幅はそのまま
(5)ブラウザ依存せず動作する方が嬉しいです
まとめると、リンクを開くと画面右端ピッタリに次のような小窓が現れるイメージです。
┌────┬─┐
│親窓 │小│
│ │窓│
│ │ │
└────┴─┘
よろしくお願いします。
<html>
<head>
<script language="javascript" type="text/javascript">
function winOpen(url,wid,hei,wname){
window.name = wname;
sw = screen.availWidth;
sh = screen.availHeight;
wl = (sw-wid)/2;
wt = (sh-hei)/2;
about = window.open (url,"SmallWindow","width=" + wid + ",height=" + hei + ",,toolbar=no,location=no,directories=no,menubar=no,resizable=yes,scrollbars=yes,left=" + wl + ",top=" + wt);
}
</script>
</head>
<body>
<a href="#" target="new" onClick="winOpen('../komado.html','540','420','dot'); return false;">
クリックで小窓を開く
</a>
</body>
</html>
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;">
yukio1さん、貴重なレスありがとうございます。
早速確認させていただきました。
縦方向については、画面の上辺、下辺にビシっとあいました。
横方向については、なぜか画面のおおむね中央のやや
右に表示されます。
ちなみに、1600x1200なんですが・・・
ここは、どこを書き換えたら上辺、下辺のように
びしっと決まるでしょうか・・
すみません、現状でも十分感動的ですが、もしよろしければ補足的にご教示いただけますと幸いです。
まずは御礼申し上げます。
No.3
- 回答日時:
よく考えるといい加減な回答していたので、訂正です。
left='+getScreenWIDTH()*0.7+',
width='+getScreenWIDTH()*0.3+',
これで、おそらく、理想のものが出来ると思います。
結論からいうと、おっしゃるとおり
100%希望通りの動作を得られました。
感謝にたえません。
また、これからいろいろと使いまわす予定の
JSなので、考え方、カスタマイズの仕方など
大変参考になりました。
本当にありがとうございました。
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ということになっているはずです。
と、いった感じの補足でよいでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlファイルを開いた時の画面...
-
CGIで出来ているデータベースを...
-
ボタンのID名を取得するには?
-
JavaScriptからVBScriptの呼び...
-
javascriptからウィンドウを開...
-
ハイパーリンクに下線を表示す...
-
ウインドウの後ろに隠れている...
-
<a href="#" …>の意味を教えて...
-
bodyにidをつける理由は何ですか?
-
html メールリンクにて自動ファ...
-
undefinedが表示されてしまう
-
HP上のPDFファイルを保存禁止...
-
JavaScript 配列とiframe
-
別ファイルのfunctionの読み込み方
-
よろしくお願いします。
-
JavaScriptを有効にする文言を...
-
マウスオーバーでリンク先サム...
-
ASP.NETでjsファイルのリンクの...
-
スクロールして移動を1回で終了...
-
乱数を一定時間毎に表示させた...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlファイルを開いた時の画面...
-
あなたのXAMPPのdashboard内のj...
-
window.openでフルスクリーン表...
-
jquery の mouseleave について...
-
外部からのjs呼び出しについて。
-
JavaScriptで小窓を表示したい
-
SQLのWHEREで全てを質問する方法
-
ブラウザーの左下に、「java sc...
-
ホームページで window.open() ...
-
ウィンドウを閉じる際のダイアログ
-
window.openで404エラーがでます
-
JavaScriptで新しいウインドウ...
-
IEのタイトル変更方法について
-
question about Prolog
-
javaでサムネイルをクリックし...
-
最初からツールバーなしでhtml...
-
クロスドメインのjsonpをjquery...
-
色の指定で配列を使いたい
-
小窓を表示する時に、必ず右上...
-
Canvasを使って描画して面積取得
おすすめ情報