作者MrMarcus (請勿忘記密碼)
看板Ajax
標題Re: [js] 如何把另開視窗置中
時間Sun Mar 29 20:22:11 2009
※ 引述《HuangJC (吹笛牧童)》之銘言:
: ※ [本文轉錄自 PHP 看板]
: 作者: HuangJC (吹笛牧童) 看板: PHP
: 標題: [請益] 如何把另開視窗置中
: 時間: Sun Mar 29 19:43:25 2009
: 如題,我是想問 JavaScript 的做法
: 但找到 Java 板,找不到 JavaScript 板
: 因此先發這邊,看能不能轉去另一個版面
: <input type='submit' value='顯示XX' onclick='window.open(....)' />
: 如上,這是我想到做法的外框
: 當然如果 PHP 這個 server side 語言能辦到,那就太感謝了
: 上面的 code 會產生一個按鍵,按下後執行 onclick 裏的 JS 語法
: window.open 可以給一些參數,其中包含新視窗的 left,top
: 可是我不知道 user 的視窗有多大,必需用變數,用計算來做
: 因此困難就出來了
: onclick='function(){.....}'
: 如果可以用這種語法,也許我還可以包一些計算
: 可惜的是我失敗了
: PHP 在 server side 有沒有什麼武器可以幫忙這些事呢?
: 以上,謝謝
如果你指的「置中」是相對於整個螢幕,可以使用screen物件來取得
使用者螢幕的解析度。可以使用以下:
screen.width 螢幕寬度
screen.availWidth 螢幕寬度,但去除Windows工具列的寬度
screen.height
screen.availHeight
有了螢幕寬度與高度,配合要開啟的視窗的寬度與高度,就可以
計算出視窗要開在哪個座標看起來會在螢幕正中央了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.64.235
1F:推 HuangJC:我曾把 code 寫在子視窗中,結果是子視窗先出現再移動.. 03/29 20:24
2F:→ HuangJC:如果我要在母視窗中先算好的話,我想用 function(){} 03/29 20:24
3F:→ HuangJC:這個好像叫 closure function;但 onclick 中能用嗎? 03/29 20:25
4F:推 HuangJC:謝謝;我好像太堅持了,那就拆開來寫 XD ; 堅持的原因是, 03/29 20:28
5F:→ HuangJC:code 是別人的,我只做小修;因此會想把修改'擠在一起' 03/29 20:28
6F:→ HuangJC:但如果無法擠在一起...腦袋活一點也不是難事 :) 03/29 20:29
7F:推 HuangJC:可喜可賀,寫出來了 XD 03/29 21:06
8F:推 HuangJC:最後我避不了使用了動態產生程式這樣的技巧,但同事曾批評 03/29 21:59
9F:→ HuangJC:另一位同事敗在這裏;因為太難維護..儘量不要用.. 03/29 22:00