JAVAスクリプトの記述について間違い箇所を直してください!

このQ&Aのポイント
  • ブラウザでプレビューしたところIEでは正常に見れますがスレイプニル(Sleipnir)で表示させると何も表示されません。
  • スクリプト内にIEの表示対応を記述する必要があります。
  • スクリプト内にはearthquake関数があり、この関数が実行されると画面全体が揺れます。
回答を見る
  • ベストアンサー

JAVAスクリプトの記述について間違い箇所を直してください!

以下のスクリプトを実行させると画面全体が揺れるというものなのですが、ブラウザでプレビューしたところIEでは正常に見れますがスレイプニル(Sleipnir)で表示させると何も表示されません。スクリプト内にそういった文面を記述する必要があるのでしょうか?だとしたらどこに何と記述したらよいのか教えていただけると助かります。よろしくお願いいたします。 <SCRIPT language="JavaScript"> <!-- bName = navigator.appName; bVer = parseInt(navigator.appVersion); if (bName == "Netscape" && bVer == 3) ver = "n3"; else if (bName == "Netscape" && bVer == 2) ver = "n2"; else if (bName == "Netscape" && bVer >= 4) ver = "n4"; else if (bName == "Microsoft Internet Explorer" && bVer == 2) ver = "e3"; else if (bName == "Microsoft Internet Explorer" && bVer > 2) ver = "e4"; if (navigator.appVersion.indexOf("Mac") != -1) ver+="m"; function earthquake() { if (ver == "n4" || ver == "n4m" || ver == "e4" || ver == "e4m") { for (i = 10; i > 0; i--) { for (z = 5; z > 0; z--) { self.moveBy(0,i); self.moveBy(i,0); self.moveBy(0,-i); self.moveBy(-i,0); } } } } setTimeout('earthquake()',3); //--> </script>

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

  • ベストアンサー
  • m035
  • ベストアンサー率44% (38/86)
回答No.1

これは最初の2行でどのブラウザを使っているかを変数に入れ、 その後でifによって実行するかどうかを分岐していますので、 それを取り除けばエラーにならない限りどのブラウザでも動くようになります。 ただし、これは最も安易な方法です。 ブラウザごとに動作を変える必要があるときは分岐しましょう。 <script type="text/javascript"> <!-- function earthquake(){ for(i=10;i>0;i--){ for(z=5;z>0;z--){ self.moveBy(0,i); self.moveBy(i,0); self.moveBy(0,-i); self.moveBy(-i,0); } } } var timer=setTimeout('earthquake()',3); //--> </script>

関連するQ&A

  • ブラウザが判別出来ない。

    お世話になっております。 JavaScriptの本を購入しました。 その本にブラウザ判定のスクリプトが掲載されており、それをそのままアップしたところ、私はIE6なのにIE4と判別されてしまいました。 下記がそのスクリプトです。 ちなみに、私はXPのIE6です。 このスクリプトはこれで完璧なのでしょか? また、出来ましたら、このスクリプトを試していただけたらと思うのですが・・・よろしくお願い致します。 <script language="JavaScript"> <!-- if( navigator.appVersion.charAt(0)==4){window.location.href = "nn4.html"} // NN Ver4 の場合 if( navigator.appVersion.charAt(0)==5){window.location.href = "nn5.html"} // NN Ver5 の場合 if( navigator.appVersion.charAt(0)==6){window.location.href = "nn6.html"} // NN Ver6 の場合 } if( navigator.appName.charAt(0)=="M"){ if( navigator.appVersion.charAt(0)==2){window.location.href = "ie2.html"} // IE Ver2 の場合 if( navigator.appVersion.charAt(0)==3){window.location.href = "ie3.html"} // IE Ver3 の場合 if( navigator.appVersion.charAt(0)==4){window.location.href = "ie4.html"} // IE Ver4 の場合 if( navigator.appVersion.charAt(0)==5){window.location.href = "ie5.html"} // IE Ver5 の場合 if( navigator.appVersion.charAt(0)==6){window.location.href = "ie6.html"} // IE Ver6 の場合 } //--> </script> <noscript>JavaScript を使用しています。JavaScript を有効にしてください。</noscript>

  • JavaScript、動作解説のおねがい!

    こんにちは。お世話になります。 次のJavaScriptは、どういった事(何を)するものか、おしえてください。 <script type="text/javascript"> //<![CDATA[ if ((top != self) && location.href.match(/^http:\/\/[\d]+\.[\d]+\.[\d]+\.[\d]+\/translate_c/)){ if ( navigator.appName == 'Netscape' && parseInt(navigator.appVersion) == 6 ) { top.location.replace(location.href); } else { top.location = location.href; } } //]]> </script> よろしくお願いします。

  • WinとMacのFirefox以外は違うindexに飛ばすスクリプトについて

    Javascript初心者です。 iframeを使用したHP作成後、ブラウザCheckしたところ(細かいバージョン指定まではしていません) Windows版のブラウザはほぼ全般○ですが、MacはFirefox以外×でした。 なのでindex.htmlに下記判別をさせたいのです。↓ 「OSがwinの場合とOSがMacでブラウザがFirefox(Gecko)の場合はそのまま、 それ以外はindex2.htmlに飛ばす。」 スクリプトを自分なりに書いてみたのですが、これであっているのかが、自信がありません。 どなたか上記方法をご存知の方、または下記スクリプトの間違いがわかる方。 お願いします、教えてください。 if(navigator.appVersion.indexOf("win") != -1){ document.write(); else if(navigator.appVersion.indexOf("Mac") != -1){ if{(navigator.userAgent.indexOf('Gecko/')!=-1) document.write(); } else{ location.replace("index2.html"); } }

  • レイヤーを使うときに妙なスクリプトが入る

    ホームページ作成ソフトでレイヤーを使うと、自動的に以下のようなスクリプトが追加されてしまいますが、いったいなんのためのスクリプトですか? ホームページ作成ソフトは、DreamWeaver4です。 <script language="JavaScript"> <!-- function MM_reloadPage(init) { //reloads the window if Nav4 resized if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) { document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }} else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); } MM_reloadPage(true); // --> </script> これが入らないと、ネットスケープの4.Xでレイヤーの中でスクリプトを実行するとエラーになってしまいます。

  • JavaScriptの記述が長い

    ホームページビルダー11でJavaScriptものの記述がとても長くなっています。HPBが、ホームページビルダーの略だとは思われますが、 この中で削除しても影響のない記述はありますでしょうか? 多少でもサイトの読み込み速度を早くしたいと考えています。 宜しくお願いいたします。 /////////////////////////////////////////////////////////// <SCRIPT language="JavaScript"> <!--HPB_SCRIPT_ROV_50 function HpbImgPreload() { 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||isN6||isIE) { if (document.images) { var imgName = HpbImgPreload.arguments[0]; var cnt; swImg[imgName] = new Array; for (cnt = 1; cnt < HpbImgPreload.arguments.length; cnt++) { swImg[imgName][HpbImgPreload.arguments[cnt]] = new Image(); swImg[imgName][HpbImgPreload.arguments[cnt]].src = HpbImgPreload.arguments[cnt]; } } } } function HpbImgFind(doc, imgName) { for (var i=0; i < doc.layers.length; i++) { var img = doc.layers[i].document.images[imgName]; if (!img) img = HpbImgFind(doc.layers[i], imgName); if (img) return img; } return null; } function HpbImgSwap(imgName, imgSrc) { 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||isN6||isIE) { if (document.images) { var img = document.images[imgName]; if (!img) img = HpbImgFind(document, imgName); if (img) img.src = imgSrc; } } } var swImg; swImg=new Array; ここにはロールオーバー類記載 HpbImgPreload('_HPB_ROLLOVER2', 'banner/618-115.jpg', 'banner/618-115.jpg'); //--> </SCRIPT>

  • 背景ランダム

    JavaScriptを使って背景をランダムに変更したいので すが、その背景ごとにを左上固定や縦リピートなど を設定することは出来るのでしょうか? 宜しくお願い致します ちなみにCSSは基本だけですが理解しています <SCRIPT LANGUAGE="JavaScript"> <!-- function randomWall() { if (navigator.appVersion > '5' || (navigator.appName == 'Microsoft Internet Explorer' && navigator.appVersion > '4')) { var max = 6; wall = Math.floor(Math.random() * max) + 1; if (wall == 1) { document.body.background = '1.gif' } else if (wall == 2) { document.body.background = '2.gif} } } //--> </SCRIPT>

  • document.write が作動してくれません!

    /* ブラウザが 「IE Version 5 以上」 または 「Netscape Navigator Version 4 以上」 のときに文字列を出力するつもりで、以下のscriptを書きましたが、IE Version 6 のパソコンで文字列が出力されません。 (エラーにはなりません。インターネット・セキュリティは既定レベルの「中」です。) 何が間違いなのかお教えくださいませ。 <script type="text/javascript"> <!-- if ( ( (navigator.appName.indexOf("Microsoft") >=0)&&(navigator.appVersion.charAt(0) >4) ) || ( (navigator.appName.indexOf("Netscape") >=0)&&(navigator.appVersion.charAt(0) >3) ) ) { document.open(); document.write("「パソコン申し込み」 では、入力していただいた貴下の個人情報を送信する際に、情報の暗号化をおこないます。"); document.close(); } //--> </script> */

  • Java Scriptで・・・

    <form name="f"> <table border> <tr><td>番号</td><td>問題</td><td>解答</td><td>正誤</td></tr> <script type="text/javascript"> <!-- // 変数・関数の定義 var i, n1, n2; var s = new Array(11); // 正解を保存する配列 s[0] ~ s[10] function myrandom(n) { return Math.floor(Math.random() * n); } function check() { var i, ok=0, ng=0; for (i=1; i<=10; i++) { if (document.f.elements["s" + i].value == s[i]) { document.f.elements["c" + i].value = "○"; ok++; } else { document.f.elements["c" + i].value = "×"; ng++; } } document.f.ok.value = ok; document.f.ng.value = ng; } for(i=1; i<=10; i++){ n1 = myrandom(10) + 1; n2 = myrandom(10) + 1; s[i] = n1 + n2; document.writeln('<tr>'); document.writeln('<td>' + i + '</td>'); document.writeln('<td>' + n1 + ' + ' + n2 + ' =</td>'); document.writeln('<td><input type="text" name="s' + i + '" size="3"></td>'); document.writeln('<td><input type="text" name="c' + i + '" size="3"></td>'); document.writeln('</tr>'); } // --> </script> </table> <input type="button" value="答え合わせ" onclick="check();"> 正答数:<input type="text" name="ok" size="3"> 誤答数:<input type="text" name="ng" size="3"> </form> このようなプログラムを作ったのですが、この表示される10問が全部異なる問題となるようにするにはどうすればいいでしょうか?

  • plug-inが無い場合に他のページへ誘導するJava Script

    MacOS9.04+Adobe GoLive5.0で、HP中にQuickTimeを <embed>で埋め込んでいます。 QT Plug-inがInstallされていない方は、 用意したページにJumpというのを「日経MAC」で みました。そのソースを見て書いたのですが、 うまく動作しません。 ブラウザにmovieが表示されなくなります。 どうしてでしょうか? どこか間違えがありますでしょうか? よろしくお願い致します。 以下Java Script -- <script language="JavaScript"><!-- var exists_qtplugin=false; if(navigator.plugins){ for(i=0;i<navigator.plugins lengt; i++){ if(navigator.plugins[i].name.indexOf("QuickTime")>=0{ exists_qtplugin=ture; } } //--></script> </HEAD> <BODY BGCOLOR="#FFFFFF"> <script language="JavaScript"><!-- if(exsts_qtplugin){ document.write('<embed src="main.mov" width="300" height="200" autoplay="true" controller="fales"> </embed>'); }else{ document.write('<a href=products/index.html"><img src="products.jpg" alt="products" border="0" width="300" height="200"></a>'); } //--></script><noscript><a href=products/index.html"><img src="procucts.jpg" alt="products" border="0" width="300" height="200"></a></noscript>

  • flash10をjsでバージョンチェックする場合

    FLASH10になり、二桁の数値を読み込みたいのですが対象ファイルのscriptが <SCRIPT LANGUAGE="Javascript"> <!-- var flashinstalled = 0; var flashversion = 0; MSDetect = "false"; if (navigator.plugins && navigator.plugins.length) { x = navigator.plugins["Shockwave Flash"]; if (x) { flashinstalled = 2; if (x.description) { y = x.description; flashversion = y.charAt(y.indexOf('.')-1); } } else flashinstalled = 1; if (navigator.plugins["Shockwave Flash 2.0"]) { flashinstalled = 2; flashversion = 2; } } else if (navigator.mimeTypes && navigator.mimeTypes.length) { x = navigator.mimeTypes['application/x-shockwave-flash']; if (x && x.enabledPlugin) flashinstalled = 2; else flashinstalled = 1; } else MSDetect = "true"; // --> </SCRIPT> <SCRIPT LANGUAGE="VBScript"> on error resume next If MSDetect = "true" Then For i = 2 to 50 If Not(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & i))) Then Else flashinstalled = 2 flashversion = i End If Next If flashinstalled = 0 Then flashinstalled = 1 End If End If </SCRIPT> <SCRIPT LANGUAGE="Javascript" TYPE="text/javascript"> <!-- if (flashinstalled == 2){ if (flashversion < 7){ window.location="nonflash.html"; } }else{ window.location="nonflash.html"; } // --> </SCRIPT> となっております。 どの部分どう修正すれば対応できるでしょうか。 だれかお答えいただければ幸いです。 長文失礼致しました。

専門家に質問してみよう