Re: [報告 2/2]フレーム非対応のブラウザと擬似フレーム動作
どうも。氷炎 雷光風(ひえん らいこふ)こと笠原です。
fj.comp.lang.javascriptにクロスして、
Followup-To:fj.comp.lang.javascriptとなってます。
Message-ID: <c3s11d$ouv$1@news00.iij4u.or.jp>
において、すぎたさんは書きました。
> 今回の件は(今日compatModeを見つけたので(^^;;)
>
> var b = (document.all && (document.compatMode == undefined || document.compatMode == "BackCompat"))
> ? document.body : document.documentElement;
>
> の方が良いかもしれません。(IEなら、document.body.scrollTop でも十分かも)
こちらについて質問させてください。
互換モードを条件に入れての判定のように思うのですが、
いったいどういうことなのかサッパリです。
&&と||を使っての2重入れ子の条件判定(これをAとする)。
Aと?以後の文の、比較or条件判定を取って、bの値に設定している
ということでしょうか?
で、こうすることによるメリットというのは、どういうことでしょうか?
> また、lb が設定されていないため、こちらも設定した方が良いかと。
>
> var movepos = function () {
> lt.style.top = b.scrollTop + 'px';
> lb.style.top = b.scrollTop + 160 + 'px';
> r .style.top = b.scrollTop + 'px';
> }
> setInterval(movepos, 200);
久野さんのサンプルを自分でいじった時、lbの設定文を入れていたのですが、
動作がうまくいかなかったのと、ltとrだけの設定で問題なさそうというのが
あって、あえて削っていましたが、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
を書き間違えるというのが原因だったみたいです。
そして、すぎたさんの意見を元に、下記のようにしてみました。
script本体部分だけ書きます。
function init() {
if(document.all) { // IE
var lt = document.getElementById('left-top'); lt.style.position = 'absolute';
var lb = document.getElementById('left-bottom'); lb.style.position = 'absolute';
var r = document.getElementById('right'); r.style.position = 'absolute';
var b = document.documentElement || document.body;
var movepos = function () {
lt.style.top = b.scrollTop + 'px';
lb.style.top = b.scrollTop + 160 + 'px';
r .style.top = b.scrollTop + 'px';
}
setInterval(movepos, 200);
}
}
> 今回のケースではあまり意味を持ちませんが、テストとしては、
> </body> の直前に大量の行を挿入して、div の height:100%
> を超えるようにしてテストすると、JavaScript が動作しているか
> 確認できます。
なるほど、そんな確認方法があったのですね。
「今回のケースではあまり意味を持ちません」というのは、
どういう意味でしょう?今1つピンと来ません。
> > 修正後、コメントアウトしても正しく動作することを確認しました。
>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> だと、非標準モード(互換モード)で動作している点については、
> 認識しておいた方が良いと思います。
はい。それは認識しています。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
を書き間違えるというのは、ちょっと情けなかったかも・・・
ではでは。
--
笠原 励(氷炎 雷光風/ひえん らいこふ)
cuncuku@uranus.interq.or.jp −受信専用−cuncuku@yahoo.co.jp
オリジナルストーリーの感想は、if_tlw-lj@infoseek.jpまで。
Subjectに「番外編」とあれば、ほぼオリジナルストーリーです。
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735