WEB相談室

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

タイトル:ネスケでレイヤーが消える

keiko [WriteDate : Thu May 17 17:51:27 2001]

以下のスクリプトのようにレイヤーを使用しているのですが
ネスケ4.5(他のバージョンでは未確認、IEでは問題なし)で
ページを読み込みリサイズするとレイヤーが消えてしまいます。
どうしたらそれを防げるでしょうか。

<html>
<head>
<title></title>

<STYLE type="text/css">
<!--
#menu  {position:absolute; visibility:hidden;}
#menu  {
    border:solid silver 0px;
    padding:4px;
    width:90px;
    }
-->
</STYLE>

<SCRIPT type="text/javascript">
<!--
//−ブラウザチェック
//var Check1="null",Check2="null",Check3="null";
function bcheck()    {
    if (document.all){  // IE4.x or 5.x
        Check1="document.all['";
        Check2="'].style";
        Check3="document.body.client";
    }else if (document.layers){  // NN4.x
        Check1="document.layers['";
        Check2="']";
        Check3="inner";
    }else if (document.getElementById){ // Mozilla5.0 or N6
        Check1="document.getElementById('";
        Check2="').style";
        Check3="inner";
    }
}

//−メニューの固定
var iwidth = 105;    //画面右端からの距離
var iheight = 48;    //画面上端からの距離
    
//−メニューの固定
function movemenu()    {
    if     (document.all)           {PosLeft="document.body.scrollLeft";PosTop="document.body.scrollTop";}
    else if(document.layers)        {PosLeft="window.pageXOffset";      PosTop="window.pageYOffset";}
    else if(document.getElementById){PosLeft="window.pageXOffset";      PosTop="window.pageYOffset";}
    eval(Check1+"menu"+Check2+".left=" +PosLeft+ "+" +Check3+ "Width - iwidth");
    eval(Check1+"menu"+Check2+".top =" +PosTop+  "+ iheight");
    showL("menu");
        TimerID = setTimeout("movemenu()",100);
}

//−レイヤの表示
function showL(layerName){
    eval(Check1+layerName+Check2+'.display="block"');
    eval(Check1+layerName+Check2+'.visibility="visible"');
}
//-->
</SCRIPT>

</head>

<body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" bgcolor="#ffffff" background="back.jpg">


<img src="top.jpg">

<!--右上のマーク------->
<DIV id="menu">
<img src="mark.gif" border="0" alt="トップへ"><br>
</DIV>

<SCRIPT type="text/javascript"> <!--
bcheck();
movemenu();
//--> </SCRIPT>

</body>
</html>

----
<body onresize="location.reload()">というようにリロードさせることも考えたのですが、フレームを使っているためかうまく機能しません。
よろしくお願いします。


Nobu3 [URL] [WriteDate : Fri May 18 01:08:52 2001]

NNの4時代って<layer>か<ilayer>を使わないといけないんじゃ?


keiko [WriteDate : Fri May 18 14:10:18 2001]

NN4.xではどうしても<layer>を使わないといけないんでしょうか・・・。

ちょっと質問を変更させて頂きたいんですが、
ブラウザがネスケ4.xの場合のみ、リサイズされたらページをリロードするためにはどうしたらいいんでしょうか。(フレーム使用のページにおいて)


ween [WriteDate : Fri May 18 14:49:48 2001]

> ブラウザがネスケ4.xの場合のみ、リサイズされたらページをリロード
if(document.layers)window.onresize=function(){location.reload();}
とか。


TNN [WriteDate : Fri May 18 16:10:53 2001]

Netscape Navigator 4.xでウィンドウをリサイズすると、positioningを利用したスタイルを指定されたHTML文書の表示が崩れます。Netscape Navigator 4.xのバグです。

「NC4.xのリサイズバグ対策」が、以下の文書に書かれてゐます。

http://east.portland.ne.jp/~sigekazu/css/boxm.htm


keiko [WriteDate : Fri May 18 18:06:48 2001]

weenさん、TNNさん、ありがとうございます!
上記アドレスにて解決致しました。
4.xを使い初めて以来ずっと気になっていた問題なので
ちゃんと動作した時、本当に感動しました。

ありがとうございました!


ma-to [WriteDate : Fri May 18 19:13:49 2001]


n4とかe4には「無理をさせない」のが一般的な対処法のようです。私もこれに倣って悪く言えば「手抜き」で対処します。そういう実状もあり、既に一々細かい確認をn4.6以降は取っていません。

n4.7以降では自分からキャッシュをreloadしているように感じられますが力不足は否めません。場合(希な場合)によってはn4.7にreloadさせる必要はないかもしれませんが、「とにかくreload()」が定石ですし、情報を伝えるという基本を考えればJavaScriptでこの余計な処理をすることには目を瞑らざるを得ないと考えています。

TNN様ご紹介のページの手法はdreamweaverが吐き出すのと同じ「一般的な」やり方です。が、寧ろ余計な条件は省いてween様の提示された手法で行う方が(個人経験上は)確実です。フレームページで問題があったことはありませんが、フレームの幅(または高さ)を固定してフレームのnoresize属性(値)を指定していたらもしかしたらレイアウトは崩れるけれどreloadしない場合があるのかもしれません。その場合は親フレームに書いて、reloadが必要なフレームだけをreloadさせれば良いのではないかと思われます。ただし実際の所は上手く噛み合わない場合がしばしばありますから、諦めて根本的にページを練り直すのが最善であろうと提案します。


質問とは少し逸れます。

見る限りでは何の為にpositionとかJavaScriptとかを使っているのかよく分かりません。

そしてこれは質問者の方への指摘ではなく、大多数の「能天気な」JavaScriptサンプル作者に遠くから呟くことになるのですが、例えばこの機能を無効にしてCSSだけが有効であった場合、件のソースではvisibility:hiddenのままです。JavaScriptに関してはこの類のワライバナシのネタには事欠かない。能天気を廃して、公開する時には「無効にしていても問題無い」ように書くのだとすれば、端から書かなければ良い、つまりブラウザ依存(固有)のスクリプトは必要ないということにもなりかねません。

CSSでさえ情報不足(情報を得ようとする意識と経験の不足)から危険だと盲信する方々もいまだに存在しているようですから、JavaScriptサンプル作者は意識して「目に見える危険」だけは除去しなければならないと思われます(が、時既に遅し)。




Nobu3 [MAIL] [URL] [WriteDate : Sat May 19 00:22:23 2001]

>大多数の「能天気な」JavaScriptサンプル作者
Web上で需要と供給の関係が成り立つのかはわかりませんが、需要が無ければ供給も無いはずです。
で、「大多数」になったのは、やはり需要が多くなったからだと、私は思います。
質問とは全然関係無いですがね(笑)


keiko [WriteDate : Sat May 19 13:16:37 2001]

ma-toさん、経験からの貴重なご意見ありがとうございます。
ただ、ちょっと後半のほうで仰りたいことは判りませんでした。正直、判らなくてもいいことのような気もしますが(というと反論もあるでしょうが、少なくても私にとっては^^;)

>見る限りでは何の為にpositionとかJavaScriptとかを使っているのかよく分かりません。

これは、どうしてもブラウザの右上端に常にロゴを表示しておきたいため、某所で公開されていたサンプルを使用しました。(スクロールしてもリサイズしても右上端からの距離は同じ)
別にjsでなくても、このような表示ができれば何でも良かったんです。
jsは私にとって方法のひとつであって、別に拘ったわけではないです。ただネットで調べたらぶつかったのがjsだっただけ。


keiko [WriteDate : Sat May 19 13:16:48 2001]

ma-toさん、経験からの貴重なご意見ありがとうございます。
ただ、ちょっと後半のほうで仰りたいことは判りませんでした。正直、判らなくてもいいことのような気もしますが(というと反論もあるでしょうが、少なくても私にとっては^^;)

>見る限りでは何の為にpositionとかJavaScriptとかを使っているのかよく分かりません。

これは、どうしてもブラウザの右上端に常にロゴを表示しておきたいため、某所で公開されていたサンプルを使用しました。(スクロールしてもリサイズしても右上端からの距離は同じ)
別にjsでなくても、このような表示ができれば何でも良かったんです。
jsは私にとって方法のひとつであって、別に拘ったわけではないです。ただネットで調べたらぶつかったのがjsだっただけ。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]
ChaichanPAPA's World