0

私はJavaScriptを初めて使用し、JavaScriptKitから安全でないJavaScriptクイズを変更してきました。主に、JSLintとFirebugで整理し、Safari(特にiPad用)で動作させようとしています。クイズはIE9、Chrome、Firefoxでうまく機能します。

parse3日間とフォーラムの助けを借りて、問題は変数として使用されているJavaScriptメソッドに絞り込まれました。SafariJavaScriptデバッグは

ReferenceError:変数の解析が見つかりません

そしてそれは理にかなっています(他のブラウザが気にしないように見える理由は奇妙ですが)。いくつかのアラートを含むこの現在のバージョンは、ページでエラーが発生している状態で、ここresults.htmから入手できます。

関数は以下のとおりですが、修正方法がわかりません。私は他の名前に変更parseしましたparcedが、それは変数である必要があると考えていますが、これによりすべてのブラウザで失敗します!ドキュメントがテキスト領域に情報を書き込む方法を実際には理解していません。魔法のように3つのブラウザで機能するだけです。どんな助けでもいただければ幸いです。

var wrong = 0;
var e, n, results, temp, totalquestions;
for (e = 0; e <= 2; e++) {
    document.result[e].value = "";
}

var results = document.cookie.split(";");
alert("var results = " + results);
for (n = 0; n <= results.length - 1; n++) {
    alert("results length = " + results.length); <!--last alert in Safari -->
    if (results[n].charAt(1) === 'q') {
        parse = n;
        alert("parse = " + parse);
    }
}

var incorrect = results[parse].split("=");
alert("var incorrect = " + incorrect);
incorrect = incorrect[1].split("/");
alert("var incorrect after split = " + incorrect);
if (incorrect[incorrect.length - 1] === 'b') {
    incorrect = "";
}

document.result[0].value = totalquestions - incorrect.length + " out of " + totalquestions;
document.result[2].value = ((totalquestions - incorrect.length) / totalquestions * 100).toFixed() + "%";
for (temp = 0; temp < incorrect.length; temp++) {
    document.result[1].value += incorrect[temp] + ", ";
    alert("the value of temp is " + temp);
}

4

2 に答える 2

0

どこにも宣言していparseないため、特定のブラウザーでランダムな問題が発生する可能性があります。私は変更します:

var e, n, results, temp, totalquestions;

var e, n, results, temp, totalquestions, parse;
于 2012-05-01T19:11:26.460 に答える
0

問題は...

results[n].charAt(1) 

位置 1 は実際には "=" ではなく "q" です

正しいコードは...

if (results[n].charAt(0)=='q'){

これは古い投稿であることは知っていますが、実際に今日同じ問題に遭遇しました。

于 2013-04-02T19:52:20.453 に答える