html構文の質問です。

下記のファイルがIEでは表示されますがFFでは真っ白になります。対処方法を教えてください。
エラー内容:line1[start is not defined
onload(load )
]
line27[syntax error
[Break on this error] else\n]
以下ページソース↓
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>検索結果-1件表示-</title>
<script type="text/javascript" src="list.txt"></script>
<script type="text/javascript" language="javascript">
<!--
..
..
..
//--></script>
</head>
<body onload="start();" bgcolor="#FFFFFF" text="#333333">
<noscript>
テキストテキストテキストテキスト<br>
テキストテキストテキストテキスト
</noscript></body>
</html>
<DIV id="show_result"></DIV>

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2008/01/15 14:55:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:hatyone No.1

回答回数18ベストアンサー獲得回数0

ポイント27pt

後半部分、最後の行がよろしくありません。

IEでは、HTMLを補完する機能がついているので

<html></html>という宣言がなくてもHTMLと解釈して表示したりする機能があったりします。

FFは、逆に忠実にHTMLを解釈しようとします。

なので、表記が適切ではなかった場合表示されません。

htmlは<html></html>ではじまりと終わりをくくる必要があるので、

最後の行はhtmlの表記としては正しくないのでFFで表示されません。

を、<html></html>の範囲内に入れましょう。

id:kaji0245

>??を、<html></html>の範囲内に入れましょう。

??はDIVの行でしょうか・・構文チェッカーでの指示だったのですが(^^ゞ

2008/01/09 08:45:08
id:devichan No.2

回答回数56ベストアンサー獲得回数4

ポイント27pt

ソース全て記載されていませんが、以下を確認してください。

・onload文で呼び出しているstartという関数は、あるのですか?

・html構文最後は、</html>で終わらないといけないのですが、それ以降に<div>がありますね。

そこら辺を、よく見てください。

id:kaji0245

startについてはコメント欄に記載しましたのでご確認いただけると幸いです。

DIVはやはりhtml内に入れたほうがよいのでしょうか・・

最初はいれてたのですが

2008/01/09 08:54:28
id:tail_furry No.3

回答回数74ベストアンサー獲得回数7

ポイント26pt

コメント欄に記述いただいたJavascriptだけ見ると、elseの前に「;」がきている箇所がおかしいですね。

if(loadCookie("num")!=false)

num=loadCookie("num");

else

document.cookie = "num="+num;

ここはあっているんですが、

if(navigator.cookieEnabled == false)

{

doc += "本システムはCookie(クッキー)を有効にしないと使用できません。<br><br>";

doc += "本システムの使用するCookieに個人情報は一切含まれません。<br>";

doc += "本システムの使用するCookieは全てのブラウザを閉じた時点で自動的に消去されます<br>";

};

else

{

この箇所(下に同じような箇所がもう一箇所あります)のelseの前の「;」は構文エラーです。

id:kaji0245

ありがとうございます。elseの前の;を数箇所削除したら表示可能になりました。今度は文字化けでなかなかFFは困難です。

ぼちぼちやっていきます。助かりました<m(__)m>

2008/01/09 10:09:30
  • id:blueberrystream
    JavaScriptの中身がわからない(特にstart()の中身)ので答えようがありません。
  • id:tail_furry
    「start is not defined onload(load)」ってなっているから、Javascriptの中にstart()って関数が無いんだと思うんだけど、Javascriptの中身が分からないから、blueberrystreamさんの言うとおり、答えようがないです。。。
    あと、「syntax error [Break on this error] else\n」も同じです。27行目がエラーになっているけど、どこが27行目か分からないし。。。
    Javascriptの中身を書いていただけますか?
  • id:kaji0245
    失礼致しました。7行目から42行目までの記述です。よろしくお願いします<m(__)m>
    <!--
    var doc="";
    var doc2="";
    var num=1;
    var erf=false;
    var submitbtn=false;

    if(loadCookie("num")!=false)
    num=loadCookie("num");
    else
    document.cookie = "num="+num;

    function start()
    {
    if(navigator.cookieEnabled == false)
    {
    doc += "本システムはCookie(クッキー)を有効にしないと使用できません。<br><br>";
    doc += "本システムの使用するCookieに個人情報は一切含まれません。<br>";
    doc += "本システムの使用するCookieは全てのブラウザを閉じた時点で自動的に消去されます<br>";
    };
    else
    {
    document.cookie = "num="+(num+1);
    if(loadCookie("num") !=(num+1))
    {
    doc += "プライバシーの設定によりCookieがブロックされています<br>";
    doc += "Cookieのブロックを解除してください。";
    };
    else
    {
    document.cookie = "num="+num;
    mkidx();
    };
    document.getElementById("show_result").innerHTML = doc;
    };
    };
  • id:devichan
    tail_furryのいわれているとおり、elseの前は「;」はいりません。
    >||
    {}で囲む場合も無しの場合も、if文でelseを使うときは注意です。
    ||<

    >今度は文字化けでなかなかFFは困難です。
    以下の部分で、
    >||
    > <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

    charset=Shift_JIS とされていますが。。。
    ||<
    ソースは、Shift_JIS で書かれているのでしょうか?
    Shift_JISとして、使いたいのであれば、フリーのテキストエディタ(sakuraとかTeraPADとかVxEditerとか)でソースを開いた後。明示的にShift_JISとして保存されてみてはいかがでしょう?
    (TeraPADの場合、オプション→文字コードで、保存時の文字コードを変換するように指定しなければなりません)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません