WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:WinXP上で表示されているIe6のウインドのスクリーン上の位置と高さを知りたいのですが・・

0:[投稿] big [2004/12/17 17:18 ][環境:WinXP, UNIX ]

WinXP上で表示のIe6のウインドウの左肩(各種バーを含む)のXY座標と、ウインドウの高さ(各種バーを含む)をJavaScriptで求めたいのですが可能でしょうか?Win2000上のIe6とOS関係なしのNetScapeでは何とか出来たのですがXPのIe6ではうまくいきません。どなたかご存知のかたありましたら、お教えください。


1:[質問] big [2004/12/20 10:32 ]

補足
質問者ですが内容について補足させていただきます。

現在XP上でIe6の座標等を取り込めていますが、非常にみずらい状態になってます。他の方法は無いでしょうか?
<現在の方法>

@WinXP上でブラウザがIEであることを確認。
A現在の表示座標をひらう。
(x=window.screenLeft;  y= window.screenTop;)
 ところがこの座標はBodyの座標(各種BAR含まない、含んだものよりちよっと下の値)となってしまいます。

BBodyの座標よりいくらY座標が小さいか、上の座標か不明。
Cそこで左肩座標のY はAでひらった値より143ピクセル小さいと勝手に想定します。
 全ての各種バーが表示されているときは143ピクセル小さい値が Windowの左肩のY値になるからです。

Dそこへwindowを移動します。
 var YYY=Y-143;window.moveTo(X,YYY);
 moveToはWindowの左肩の位置を指定するものです。
 実際はxはBorder分調整し X-4の値を使ってます。

E移動後、そこのx2、y2をひらいます。(x2=window.screenLeft;  y2= window.screenTop;)
 ここで、勝手に想定した-143が正解であればy==y2で移動表示も 無いはず、差があれば差(yとy2)の分補正し
 正しい左肩のY座標を求めています。

F違った座標に移動した場合にそなえ、moveToで元の位置に戻す(正しいy座標はひらっている) 

ここで私が問題にしているのはDの部分です。
 143が正解の場合、画面上では何も起こりませんが
 違っていた場合、一旦他の場所に移動しているのがチラリと見 えてしまいます
(無表示バーあり190ピクセルとかが正解であると、画面がチラツク)
 画面の処理としてはふさわしくありません。
 XP以前ではスクリーン外への移動 
 window.moveTo(-2000,-2000);
 が可能で有ったのでDの部分は表示されず問題無しですが
 XPでは出来ません。
 どうしても表示される場所への移動となってしまいます。
 移動中はWindowを無表示とか出来ないかと調べましたがセキュ リテイ上でしょうか出来ません。
 長くなって申し訳けありませんでした。
他の方法は無いでしょうか?宜しくお願いいたします。


2:[回答] dbf [2004/12/20 11:12 ]

A現在の表示座標をひらう。でX座標を拾ったら(x=window.screenLeft;)、 window.moveTo(X,0);としてやるだけではダメなの?


3:[回答] big [2004/12/20 16:53 ]

当初、実はwindow.moveTo(0,0);で 行っていました。
ですが、これですと最初の表示位置から普通かなり移動することになって、画面がピカッと光るような印象を与えてしまいます。

< X座標 >
window.screenLeft;でX座標をひらうと、外側の値はBORDER分だけの誤差となります。普通、
特に指定しなければ4ピクセル左の位置がウインドウの外側の座標(moveToなどで指定できる値)に
なるようで、これは考えず4ピクセルを固定的に補正してます。

< Y座標 >
おっしゃる通りです。問題のYの値ですが0へ移動すれば、その時ひらった y= window.screenTop;がBody左上のYの値と、そのwindow自体の左肩のy座標の間のピクセル値になります。(幾つかあるBARの合計の厚み?)これで正しく目的の座標が求められます。
ただ0への移動をやると、冒頭に申しましたように、見栄えが大変わるいので、殆ど移動しないであろう位置を想定して、0へ移動したのと結果的に同じ考え方で求めています。でも、想定が外れた場合、幾つかの、表示してないBarの分だけ、移動して見えてしまいます。でも、正しくy値は求めています。

質問の仕方が良くないですね。改めて言いますと、「winXPでこの方法ですと見栄えが悪いので、別の方法は無いでしょうか?」と
したほうが良かったですね。宜しくお願いします。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World