JSでブラウザ判定を作ったのですが謎のエラーで動きません。

[統計] HTMLからXHTMLへの移行を進めていますか?



0   名前: おすか : 2007/08/05(日) 03:32  ID:ccC936d2 sub-.G
友達とも一緒に確認しましたが、エラーがどこなのか見つからず
IE・Firefox・Opera・Safariで試しましたが、どのブラウザでも動かず。
どこがおかしいのでしょうか?
返信はメールの方にも送っていただけると幸いです。
ちょっと長いのですがおねがいします。

<html>
<head>
<script type="text/javascript">
<!--
function gbn()
{
aname = navigator.appName;
bname = navigator.userAgent;
if(aname.indexOf("Microsoft") >= 0) return ("MicrosoftInternetExplorer");
if(bname.indexOf("Opera") >= 0) return ("Opera");
if(bname.indexOf("Firefox") >= 0) return ("Mozilla Firefox");
if(bname.indexOf("Safari") >= 0) return ("Safari");
return ("");
}
function gbv()
{
var browser = gbn();
var version = 0;
var s = 0;
var e = 0;
var iev = navigator.appVersion;
var ver = navigator.userAgent;

if(browser == "Mozilla Firefox")
{
s = ver.lastindexOf("Firefox/")+8; //ブラウザバージョンの先頭の数字を検索
e = ver.indexOf(" ",s); //ブラウザバージョンの後尾の数字を検索
if(e == -1) e = 999; //上で空白を元に検索している為、なかった場合
version = ver.substring(s,e); //二つの位置情報を元に、その間の文字列を代入
}
if(browser == "Safari")
{
s = ver.lastindexOf("Safari/")+7; // ブラウザバージョンの先頭の数字を検索
e = ver.indexOf(" ",s); //ブラウザバージョンの後尾の数字を検索
if(e == -1) e = 999; //上で空白を元に検索している為、なかった場合
version = ver.substring(s,e); //二つの位置情報を元に、その間の文字列を代入
}
if(browser == "Opera")
{
s = ver.lastindexOf("Opera/")+6; // ブラウザバージョンの先頭の数字を検索
e = ver.indexOf(" ",s); //ブラウザバージョンの後尾の数字を検索
if(e == -1) e = 999; //上で空白を元に検索している為、なかった場合
version = ver.substring(s,e); //二つの位置情報を元に、その間の文字列を代入
}
if(browser == "MicrosoftInternetExplorer")
{
s = iev.indexOf("MSIE " ,0)+5;
e = iev.indexOf(";",s);
if(e == -1) e = 999;
version = iev.substring(s,e);
}
return version;

}
--></script>
</head>
<body>
<script type="text/javascript">
<!--
document.write(gbn() , gbv());
-->
</script>
</body>
</html>

1   名前: Z ◆XTzyosZXcL : 2007/08/05(日) 03:32  ID:PnVztGQA sub-Cl
 下記で紹介されているようなチェックツールを使ってみてはいかがでしょう。

http://www.tagindex.com/cgi-lib/q4bbs/patio.cgi?mode=view2&f=1279&no=1

 その上で、出力されるエラーについて調べてみたり、エラーメッセージを”そのまま”抜き出して質問されるなどすれば、どなたか詳しい方から回答があるやもしれません。

>返信はメールの方にも送っていただけると幸いです。
「自分だけ疑問が解決できれば同様の悩みを持っているかもしれないほかの方はどうでもいい」と受け止められかねませんのでご注意下さい(回答がつきにくい理由の一つになっているかもしれません)。

2   名前: 匿名 : 2007/08/05(日) 03:32  ID:m4JbUTgw sub-Cz
と言うより、どこまで話が進んだのか(ひょっとしたら解決済みなんじゃないか)が分からないので、何を答えて良いか分からない。マルチポストが嫌われる理由と同じ。

で、どこまで話が進んでるの? 情報をオープンにしてくれ。

3   名前: 元帥 : 2007/08/05(日) 03:32  [URL]  ID:mx1QidBp sub-bK
少なくとも、Opera、Firefox、IEはエラーを通知してくれますよ。
見つからないってのはおかしい。

ヒント:
JavaScriptは大文字小文字を区別します。

4   名前: おすか : 2007/08/05(日) 03:32  ID:8S5aR3cG sub-.G
回答ありがとうございます。
上記のチェックツールを使いもう一度やってみたところ
どれも実行できるようになりました。

エラーの件なのですが、
<script type・・・・・>
でエラーが起こっているとか、不思議なものを返したりと、自分自身がわけ分からなくなっていました。

あと、返信はメールの方にも送っていただけると幸いです
という文

一応 方にも にしています。
これが他の方に役立てば幸いですし、他の方はどうでもいいとは思っていません
ですがそのような誤解を生んでしまう要因を作ってしまったことをお詫びします。
これからは注意したいと思います。

みなさんご回答ありがとうございます。

5   名前: Z ◆XTzyosZXcL : 2007/08/05(日) 03:32  ID:0rc0IeUu sub-Cl
>>4
 できれば、解決した状態のコード、届いたメールの内容(個人情報部分は除外)なども提示して頂けると、今後同様なトラブルに出会った方の参考になろうかと思います(いずれ過去ログ化しますので)。

該当する掲示板Q&A:
http://www.tagindex.com/bbs/qa10.html#a02

6   名前: おすか : 2007/08/05(日) 03:32  ID:kaB5Jcam sub-.G
解決したソースを掲載します。
IE Opera Firefoxで動作確認をしましたがどれもちゃんと動きました。
改めて みなさんありがとうございます。

<html>
<head>
<script type="text/javascript"><!--
function gbn()
{
var aname = navigator.appName;
var bname = navigator.userAgent;
if(aname.indexOf("Microsoft") >= 0) return("MicrosoftInternetExplorer");
if(bname.indexOf("Opera") >= 0) return("Opera");
if(bname.indexOf("Firefox") >= 0) return("Mozilla Firefox");
if(bname.indexOf("Safari") >= 0) return("Safari");
return("");
}

function gbv()
{
var browser = gbn();
var version = 0;
var s = 0;
var e = 0;
var iev = navigator.appVersion;
var ver = navigator.userAgent;

if(browser == "Mozilla Firefox")
{
s = ver.lastIndexOf("Firefox/")+8; //ブラウザバージョンの先頭の数字を検索
e = ver.indexOf(" ",s); //ブラウザバージョンの後尾の数字を検索
if(e == -1) e = 999; //上で空白を元に検索している為、なかった場合
version = ver.substring(s,e); //二つの位置情報を元に、その間の文字列を代入
}
if(browser == "Safari")
{
s = ver.lastIndexOf("Version/") + 8; // ブラウザバージョンの先頭の数字を検索
e = ver.indexOf(" ",s); //ブラウザバージョンの後尾の数字を検索
if(e == -1) e = 999; //上で空白を元に検索している為、なかった場合
version = ver.substring(s,e); //二つの位置情報を元に、その間の文字列を代入
}
if(browser == "Opera")
{
s = ver.lastIndexOf("Opera/") + 6; // ブラウザバージョンの先頭の数字を検索
e = ver.indexOf(" ",s); //ブラウザバージョンの後尾の数字を検索
if(e == -1) e = 999; //上で空白を元に検索している為、なかった場合
version = ver.substring(s,e); //二つの位置情報を元に、その間の文字列を代入
}
if(browser == "MicrosoftInternetExplorer")
{
s = iev.indexOf("MSIE ") + 5;
e = iev.indexOf(";",s);
if(e == -1) e = 999;
version = iev.substring(s,e);
}
return(version);
}
//--></script>
</head>
<body>
<script type="text/javascript"><!--
document.write(gbn(),gbv() + "<br>");
//--></script>
</body>
</html>

7   名前: 元帥 : 2007/08/05(日) 03:32  [URL]  ID:6W8R11IJ sub-bK
ツールなしに、>>0と>>6のソースコードの違いを探すのはいささか酷なので、尻拭い。

誤:lastindexOf
正:lastIndexOf

一覧へ戻る