resizeToWIN()
ウインドウをリサイズするメソッドresizeTo()はブラウザによって外寸か内寸かがまちまちなので、
それらの実装違いを修正して内寸に統一しています。
メソッド
resizeTo(幅px,高さpx)に
幅,高さをピクセルで代入しています。ウインドウ指定を省略するとselfウインドウが指定されます。
(一般のブラウザでは仕様により100px×100px以下にはリサイズできません。
ただしmac-e5は幅311px高さ200px以下が設定できないようです。
サブウインドウを使う場合にはタブブラウザやポップアップを抑制するタイプのブラウザではwindow.openが有効である必要があります。)
*参考:
■内寸をリサイズするタイプのブラウザ
Win n4
MacOS9 n4 n6 moz e4.5 e5 o5 iCab2.7
MacOSX n6 e5.1 o5 iCab2.7
Linux
RedHat moz
Laser n4
Kondara n4
Turbo n4
■外寸をリサイズするタイプのブラウザ
Win n6 moz e4 e5 e6 o6 o7
(調査協力 Thanx 古旗一浩さん)
*このファンクションをコピーして<script>と</script>の間にペーストしておくだけでこの機能をクロスブラウザに利用できるようになります。
Cross-Browser のための Sample Function
Syntax : resizeToWIN(widthピクセル数,heightピクセル数[,ウインドウ])
function resizeToWIN(width,height,oj){
if(!arguments[2])oj=self
//--リサイズしてみて内寸取得
oj.resizeTo(width,height)
if(window.opera||document.layers){ //n4,o6,o7用
var w = oj.innerWidth
var h = oj.innerHeight
} else if(document.all){ //e4,e5,e6用
var w = oj.document.body.clientWidth
var h = oj.document.body.clientHeight
} else if(document.getElementById){ //n6,n7,m1,s1用
var w = oj.innerWidth
var h = oj.innerHeight
}
//resizeToの結果内寸が 正しければ、そのまま。
// 違うなら、差分を加算。
if(width!=w||height!=h){
oj.resizeBy((width-w),(height-h))
if(document.layers)
oj.location.reload(0) //n4はreloadでresizeバグ回避
}
oj.focus() //フォーカスする
}
Example
<script type='text/javascript'>
<!--
var subwin2=window.open('./400300b.htm','test2','scrollbars=0,resizable=1')
//--ウインドウリサイズ関数(内寸指定)
function resizeToWIN(width,height,oj){
if(!arguments[2])oj=self
//--リサイズしてみて内寸取得
oj.resizeTo(width,height)
if(window.opera||document.layers){ //n4,o6,o7用
var w = oj.innerWidth
var h = oj.innerHeight
} else if(document.all){ //e4,e5,e6用
var w = oj.document.body.clientWidth
var h = oj.document.body.clientHeight
} else if(document.getElementById){ //n6,n7,m1,s1用
var w = oj.innerWidth
var h = oj.innerHeight
}
//resizeToの結果内寸が 正しければ、そのまま。
// 違うなら、差分を加算。
if(width!=w||height!=h){
oj.resizeBy((width-w),(height-h))
if(document.layers)
oj.location.reload(0) //n4はreloadでresizeバグ回避
}
oj.focus() //フォーカスする
}
//-->
</script>
<a href="javascript:resizeToWIN(400,300,subwin2)">
内寸 幅400px,高さ300pxにリサイズ resizeToWIN(400,300,subwin2)
</a>