私は次のコードを使用してブラウザのクライアント領域の幅を何年も検出してきましたが、FF、Safari、さまざまなバージョンの IE を含むすべてのブラウザで 100% 機能しました。ただし、ワイドスクリーン解像度 (1280x800) の新しいモニターに切り替えると、このコードは IE8 で失敗します。それは 1024 の clientwidth を報告します !!!???
正しいクライアント領域の幅を取得する方法はありますか?
function getClientWidth() {
var v=0,d=document,w=window;
if((!d.compatMode || d.compatMode == 'CSS1Compat') && !w.opera && d.documentElement && d.documentElement.clientWidth)
{v=d.documentElement.clientWidth;}
else if(d.body && d.body.clientWidth)
{v=d.body.clientWidth;}
else if(xDef(w.innerWidth,w.innerHeight,d.height)) {
v=w.innerWidth;
if(d.height>w.innerHeight) v-=16;
}
return v;
}