• ベストアンサー

Netscapeで動かない

みなさん、こんにちは。Blackwinglsです。 以下のようなScriptを作成したのですが、Netscapeで動いてくれません(^^;) IEしか持っていないので、Netscapeに対応させるにはどうしたら良いのかさっぱりわかりません。 <script language="JavaScript"> <!-- var ax=20 function mv() { if(document.all) { obj=document.all.L1.style WIDTH=document.body.clientWidth } if(document.layers) { obj=document.L1 WIDTH=window.innerWidth } setTimeout("mv()",100) x=obj.left n=x.length y=(eval(x.substring(0,n-2))-ax) obj.left=y+"px" x2=obj.width n2=x2.length y2=(eval(x2.substring(0,n2-2))) if(y < -y2) { obj.left=WIDTH } } //--> </script> 何処が間違っているのでしょうか? 良きアドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.2

これってレイヤーを動かしたいってことでいいんですよね? IEとNCではその辺のコマンドが微妙に違っているんですね。それをどちらでも動かすということになると、クロスブラウザという考えかたをしないといけなくなります。 参考URLがひじょうに役に立つと思います。

参考URL:
http://www.fureai.or.jp/~tato/DHTML/simple/contents.htm
Blackwingls
質問者

お礼

ある方より obj.leftで得られる値がIEとNNでは違っているとのアドバイスを頂きました。 IEだと文字列として得られるようですが、NNだと整数値として得られるようです。 他にも若干の誤まりがあったようですが・・・・(^^;) NNは仕方がないのでmoveToを使って動かすようにするか、別途ほかに考えてみます。 回答ありがとうございました。

その他の回答 (1)

noname#9414
noname#9414
回答No.1

スクリプトのコメントを外してはどうでしょう。 <!-- と --> ですね。 #これを外すと<SCRIPT>に対応していないもので #見えてしまいますが・・・ 確かむかしNetscapeでそんな風に対処したら 動作した記憶がありますよ。

Blackwingls
質問者

補足

アドバイスありがとうございます。 なにぶん手元にNetscapeないもんで動作確認は月曜になってからになりますが、早速試してみます。 一応、 http://member.nifty.ne.jp/Blackwingls/z.htm に問題のhtmlファイルをアップしておきましたので、何か他に解決の糸口がありましたら宜しくお願いしますm(__)m

関連するQ&A

  • レイヤーを動かしたい!

    レイヤーをボタンを押すと親レイヤーの中で子レイヤーがスクロールさせるようにしたいのですが、 下記のスクリプトでY軸方向にというのは出来るのですが、これをX軸方向に変えたいのです。 どこら辺をいじればよいのでしょうか? (おそらく必要と思われる部分を抜粋しています。) var speed=40 var loop, timer function makeObj(obj,nest){ nest=(!nest) ? '':'document.'+nest+'.' this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0; this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0; this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight this.clipHeight=bw.ns4?this.css.clip.height:this.el.offsetHeight this.up=goUp;this.down=goDown; this.moveIt=moveIt; this.x; this.y; this.obj = obj + "Object" this.timerID= null; eval(this.obj + "=this") return this } function moveIt(x,y){ this.x=x;this.y=y this.css.left=this.x this.css.top=this.y } function goDown(move){ if(this.y>-this.scrollHeight+oCont.clipHeight){ this.moveIt(0,this.y-move) if(loop) this.timerID= setTimeout(this.obj+".down("+move+")",speed) } } function goUp(move){ if(this.y<0){ this.moveIt(0,this.y-move) if(loop) this.timerID= setTimeout(this.obj+".up("+move+")",speed) } } function scroll(speed){ if(loaded){ clearTimeout(oScroll.timerID); loop=true; if(speed>0) oScroll.down(speed) else oScroll.up(speed) } } function noScroll(){ loop=false if(timer) clearTimeout(timer) }

  • 文字がマウスカーソルを追従するスクリプト

    いつもお世話になっております。 以下のサンプルスクリプトでinnerText・style.left・style.topと書いてあるところがあるのですが、これはどういう意味なのでしょうか? どなたかわかる方、教えてください。 お願いします。 <HTML> <HEAD> <TITLE>マウスポインタ座標表示</TITLE> <STYLE TYPE="text/css"> <!-- #msxy { position:absolute; top:0px; left:0px; width:48px; color:black; background-color:yellow; font-size:7pt; border-width:1px; border-size:1px; border-style:solid; } --></STYLE> <SCRIPT Language="JavaScript"> <!-- function displayMouseXY(evt) { var X = Y = 0; if (document.all) { X = event.x; Y = event.y; document.all["msxy"].innerText = X+","+Y; document.all["msxy"].style.left= X + 8; document.all["msxy"].style.top = Y + 16; } if (document.layers) { X = evt.x; Y = evt.y; with(document.layers["msxy"]) { document.open(); document.write("<SMALL>"+X+","+Y+"</SMALL>"); document.close(); left = X + 8; top = Y + 16; bgColor = "yellow"; } } } if (document.all) document.onmousemove = displayMouseXY; if (document.layers) { window.onmousemove = displayMouseXY; window.captureEvents(Event.MOUSEMOVE); } // --> </SCRIPT> </HEAD> <BODY BGCOLOR="white"> マウスポインタ座標表示<BR> <DIV ID="msxy"></DIV> </BODY> </HTML>

  • java詳しい方宜しくお願いします。

    <!--HPB_SCRIPT_CODE_40 function _HpbShowObj(lId) { var ob;ob=new Array; var appVer=parseInt(navigator.appVersion); var isNC=false,isN6=false,isIE=false; if (document.all && appVer >= 4) isIE=true; else if (document.getElementById && appVer > 4) isN6=true; else if (document.layers && appVer >= 4) isNC=true; if (isNC) { w_str = "document." + lId;ob[lId] = eval(w_str); if (!ob[lId]) ob[lId] = _HpbFindHiddenObj(document, lId); if (ob[lId]) ob[lId].visibility = "show"; } if (isN6) { ob[lId] = document.getElementById(lId); ob[lId].style.visibility = "visible"; } if (isIE) { w_str = "document.all.item(\"" + lId + "\").style";ob[lId] = eval(w_str); ob[lId].visibility = "visible"; } } function _HpbFindHiddenObj(doc, lId) { for (var i=0; i < doc.layers.length; i++) { var w_str = "doc.layers[i].document." + lId; var obj;obj=new Array; obj[lId] = eval(w_str); if (!obj[lId]) obj[lId] = _HpbFindHiddenObj(doc.layers[i], lId); if (obj[lId]) return obj[lId]; } return null; } //--> </script> これは何をするスクリプトでしょうか? ぜひご教授下さいませ。

    • ベストアンサー
    • Java
  • お詳しい方どうぞ宜しくお願い致します。

    <!--HPB_SCRIPT_CODE_40 function _HpbShowObj(lId) { var ob;ob=new Array; var appVer=parseInt(navigator.appVersion); var isNC=false,isN6=false,isIE=false; if (document.all && appVer >= 4) isIE=true; else if (document.getElementById && appVer > 4) isN6=true; else if (document.layers && appVer >= 4) isNC=true; if (isNC) { w_str = "document." + lId;ob[lId] = eval(w_str); if (!ob[lId]) ob[lId] = _HpbFindHiddenObj(document, lId); if (ob[lId]) ob[lId].visibility = "show"; } if (isN6) { ob[lId] = document.getElementById(lId); ob[lId].style.visibility = "visible"; } if (isIE) { w_str = "document.all.item(\"" + lId + "\").style";ob[lId] = eval(w_str); ob[lId].visibility = "visible"; } } function _HpbFindHiddenObj(doc, lId) { for (var i=0; i < doc.layers.length; i++) { var w_str = "doc.layers[i].document." + lId; var obj;obj=new Array; obj[lId] = eval(w_str); if (!obj[lId]) obj[lId] = _HpbFindHiddenObj(doc.layers[i], lId); if (obj[lId]) return obj[lId]; } return null; } //--> </script> これは何をするスクリプトでしょうか? これはテンプレートに記述されていたコードで 何のために必要か知りたかったので 一旦削除してサーバにアップしてみたのですが きちんと表示されていて問題なさそうでした。 すみませんがぜひご教授下さいませ。 宜しくお願い致します。

  • javascriptをCSSに書き込むと動作しません。何故ですか?

    下記のjavascriptをCSSに書き込みました。拡張子は.jsとしました。 jsのフォルダにtopmuv.jsというファイル名にしました。 <script type="text/javascript"> <!-- function blink() { if (!document.all) { return; } for (i = 0; i < document.all.length; i++) { obj = document.all(i); if (obj.className == "blink") { if (obj.style.visibility == "visible") { obj.style.visibility = "hidden"; } else { obj.style.visibility = "visible"; } } } setTimeout("blink()", 500); } // --> </script> </head> <body onload="blink()"> htmlの読み込みは <LINK rel="stylesheet" href="js/topmuv.js" type="text/javascript"> と書いています。 この場合、上記javascriptのソースをシート上にダイレクトに書き込むと正常に動作しますがcssにすると動作しません。 何が悪いのでしょうか? 詳しい方宜しくお願いします。

  • このタグの文字サイズを大きくしたいのですが、、、

    <head> <title>1文字づつ画面上に出力する</title> <script language="JavaScript"><!-- str = "Sample text...(^^)/ By KaZuhiro FuRuhata"; count = 0; function setText1() { if (count > str.length) return; count++; txt = str.substring(0,count); if (document.all) document.all["outText"].innerHTML = txt; if (document.layers) { document.layers["outText"].document.open(); document.layers["outText"].document.write(txt); document.layers["outText"].document.close(); } setTimeout("setText1()",100); } // --></script> </head> <body> <a href="javaScript:setText1()">出力開始</a> <div id="outText" style="position:absolute;top:50px;left:5px;"></div> </body>

  • findObjっていう関数は何をしているの?

    function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; 名前はいろいろあると思いますが、この類の関数は何をするために設置しているんでしょうか。 どなたかご解説をお願いします。

  • 文字を一文字ずつ表示

    JavaScriptで文字を一文字ずつ表示するサンプルを見つけ、使おうとしたところdocument.allが使われていた為、ネスケで対応できない事が分かりました。ネスケ4.7で対応するようにするにはどのように変えたらいいのか教えて頂きたく宜しくお願いいたします。 <SCRIPT Language="JavaScript"> <!-- var msg="Welcome!!"; i=0; function Start(){ if(i<=msg.length){ if(document.all){ myText.innerHTML = msg.substring(0,i); }else if(document.layers){ document.myText.document.open(); document.myText.document.write(msg.substring(0,i)); document.myText.document.close(); } i=++i; setTimeout("Start()",200); }else{ i=0; setTimeout("Start()",1000); } } // --> </SCRIPT> </HEAD> <BODY onLoad="Start()"> <DIV id="myText"></DIV> </BODY> 宜しくお願い致します。

  • カウンタ表示がされません・・・

    JavaScriptの勉強をしています。下記をコード作成してWebサーバにアップしたのですが初回の「はじめまして・・・」は表示されるのですが2回目表示のカウント表示されません。 どうしてでしょうか?IE6.0の設定でしょうか? <html><head><title>JavaScript</title> <script language="JavaScript"> expstr = "; expires=Sun, 7 June 2015 14:00:00 UTC"; cookiestr = document.cookie; if(cookiestr.length > 0){ visitcount = cookiestr.substring(11,cookiestr.length); newcount = eval(visitcount) +1; document.cookie = "VisitCount="+newcount.toString(10)+expstr; }else{ document.cookie = "VisitCount=1"+expstr; newcount = 1; } </script></head> <body> <script language="JavaScript"> if( newcount > 1 ){ document.wirte("あなたは<B>"+newcount+"回目</B>の来訪です。"); }else{ document.write("はじまして。ご来訪有難うございます。"); } </script></body></html>

  • 実行時エラーが表示されます。

    VBA初心者です。 以下のコードを打つと、実行時エラー`91'オブジェクト変数またはWithブロック変数が設定されていません。 と出てしまいます。 どこを直したら上記の表示が消えますか? Sub テスト() Set obj = CreateObject("InternetExplorer.Application.1") obj.Visible = True targetURL = "http://map.japanpost.jp/pc/syousai.php?id=300197019000" obj.navigate (targetURL) Do While obj.Busy Loop obj.Visible = True For i = 0 To obj.Document.All.tags("div").Length - 1 If obj.Document.All.tags("div")(i).classname = "str_title_hira" Then s = obj.Document.All.tags("div")(i).InnerText Range("A1") = s End If Next For i = 0 To obj.Document.All.tags("p").Length - 1 If obj.Document.All.tags("p")(i).classname = "unit" Then s = obj.Document.All.tags("p")(i).InnerText Range("A3") = s End If Next obj.Quit End Sub

専門家に質問してみよう