プロが教える店舗&オフィスのセキュリティ対策術

以下のスクリプトを実行させると画面全体が揺れるというものなのですが、ブラウザでプレビューしたところ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>

A 回答 (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>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!