Safari中的JavaScript文档textarea问题

时间:2012-05-01 18:52:37

标签: javascript parsing safari document

我是JavaScript的新手,并且一直在修改JavaScriptKit的非安全JavaScript测验,主要是在JSLint和Firebug中整理它并试图让它在Safari(特别是iPad)上运行。该测验适用于IE9,Chrome和Firefox。

三天后,在论坛的帮助下,问题已经缩小为JavaScript方法parse被用作变量! Safari JavaScript调试返回

  

ReferenceError:无法找到变量解析

这是有道理的(虽然为什么其他浏览器似乎并不关心是奇怪的)。有一些提醒的当前版本here可用,results.htm页面上发生了错误。

该功能如下,我不知道如何解决它。我将parse更改为parced,其他名称确定它只需要变量,但这会使其在所有浏览器中失败!我实际上并不了解文档如何将信息写入文本区域,只是它可以在魔法等三个浏览器中运行!任何帮助将不胜感激。

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);
}

2 个答案:

答案 0 :(得分:0)

您尚未在任何地方声明parse,这可能会导致某些浏览器出现随机问题。我改变了:

var e, n, results, temp, totalquestions;

var e, n, results, temp, totalquestions, parse;

答案 1 :(得分:0)

问题在于......

results[n].charAt(1) 

位置1实际上是" ="不是" q"

正确的代码应该是......

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

我知道这是一个老帖子,但我今天遇到了同样的问题。