0
单页
上我有一个测验目前都在用JavaScript编写的一页。我需要重写/修改/拆分此代码,会出现自己的网页上的每一个问题。需要用JavaScript编写测验分成每Q的,而不是所有的足量页
我使用了一种叫做eXeLearning打造的测验工具。这是将在LMS上托管的SCORM项目的一部分。我只是不确定如何去做这件事。我很擅长HTML和CSS,我知道一点PHP,但不是JavaScript。这是有问题的剧本,我也可以张贴的代码整个页面,如果需要的话:
<script type="text/javascript">
<!-- //<![CDATA[
var numQuestions = 10;
var rawScore = 0;
var actualScore = 0;
var question0;
var question1;
var question2;
var question3;
var question4;
var question5;
var question6;
var question7;
var question8;
var question9;
var key0 = 0;
var key1 = 1;
var key2 = 0;
var key3 = 0;
var key4 = 1;
var key5 = 0;
var key6 = 0;
var key7 = 1;
var key8 = 0;
var key9 = 1;
function getAnswer()
{
scorm.SetInteractionValue("cmi.interactions.0.id","key0b0");
scorm.SetInteractionValue("cmi.interactions.0.type","choice");
scorm.SetInteractionValue("cmi.interactions.0.correct_responses.0.pattern",
"0");
for (var i=0; i < 2; i++)
{
if (document.getElementById("quizForm0").key0b0[i].checked)
{
question0 = document.getElementById("quizForm0").key0b0[i].value;
scorm.SetInteractionValue("cmi.interactions.0.student_response",question0);
break;
}
}
scorm.SetInteractionValue("cmi.interactions.1.id","key1b0");
scorm.SetInteractionValue("cmi.interactions.1.type","choice");
scorm.SetInteractionValue("cmi.interactions.1.correct_responses.0.pattern",
"1");
for (var i=0; i < 2; i++)
{
if (document.getElementById("quizForm0").key1b0[i].checked)
{
question1 = document.getElementById("quizForm0").key1b0[i].value;
scorm.SetInteractionValue("cmi.interactions.1.student_response",question1);
break;
}
}
scorm.SetInteractionValue("cmi.interactions.2.id","key2b0");
scorm.SetInteractionValue("cmi.interactions.2.type","choice");
scorm.SetInteractionValue("cmi.interactions.2.correct_responses.0.pattern",
"0");
for (var i=0; i < 2; i++)
{
if (document.getElementById("quizForm0").key2b0[i].checked)
{
question2 = document.getElementById("quizForm0").key2b0[i].value;
scorm.SetInteractionValue("cmi.interactions.2.student_response",question2);
break;
}
}
scorm.SetInteractionValue("cmi.interactions.3.id","key3b0");
scorm.SetInteractionValue("cmi.interactions.3.type","choice");
scorm.SetInteractionValue("cmi.interactions.3.correct_responses.0.pattern",
"0");
for (var i=0; i < 2; i++)
{
if (document.getElementById("quizForm0").key3b0[i].checked)
{
question3 = document.getElementById("quizForm0").key3b0[i].value;
scorm.SetInteractionValue("cmi.interactions.3.student_response",question3);
break;
}
}
scorm.SetInteractionValue("cmi.interactions.4.id","key4b0");
scorm.SetInteractionValue("cmi.interactions.4.type","choice");
scorm.SetInteractionValue("cmi.interactions.4.correct_responses.0.pattern",
"1");
for (var i=0; i < 2; i++)
{
if (document.getElementById("quizForm0").key4b0[i].checked)
{
question4 = document.getElementById("quizForm0").key4b0[i].value;
scorm.SetInteractionValue("cmi.interactions.4.student_response",question4);
break;
}
}
scorm.SetInteractionValue("cmi.interactions.5.id","key5b0");
scorm.SetInteractionValue("cmi.interactions.5.type","choice");
scorm.SetInteractionValue("cmi.interactions.5.correct_responses.0.pattern",
"0");
for (var i=0; i < 2; i++)
{
if (document.getElementById("quizForm0").key5b0[i].checked)
{
question5 = document.getElementById("quizForm0").key5b0[i].value;
scorm.SetInteractionValue("cmi.interactions.5.student_response",question5);
break;
}
}
scorm.SetInteractionValue("cmi.interactions.6.id","key6b0");
scorm.SetInteractionValue("cmi.interactions.6.type","choice");
scorm.SetInteractionValue("cmi.interactions.6.correct_responses.0.pattern",
"0");
for (var i=0; i < 2; i++)
{
if (document.getElementById("quizForm0").key6b0[i].checked)
{
question6 = document.getElementById("quizForm0").key6b0[i].value;
scorm.SetInteractionValue("cmi.interactions.6.student_response",question6);
break;
}
}
scorm.SetInteractionValue("cmi.interactions.7.id","key7b0");
scorm.SetInteractionValue("cmi.interactions.7.type","choice");
scorm.SetInteractionValue("cmi.interactions.7.correct_responses.0.pattern",
"1");
for (var i=0; i < 2; i++)
{
if (document.getElementById("quizForm0").key7b0[i].checked)
{
question7 = document.getElementById("quizForm0").key7b0[i].value;
scorm.SetInteractionValue("cmi.interactions.7.student_response",question7);
break;
}
}
scorm.SetInteractionValue("cmi.interactions.8.id","key8b0");
scorm.SetInteractionValue("cmi.interactions.8.type","choice");
scorm.SetInteractionValue("cmi.interactions.8.correct_responses.0.pattern",
"0");
for (var i=0; i < 2; i++)
{
if (document.getElementById("quizForm0").key8b0[i].checked)
{
question8 = document.getElementById("quizForm0").key8b0[i].value;
scorm.SetInteractionValue("cmi.interactions.8.student_response",question8);
break;
}
}
scorm.SetInteractionValue("cmi.interactions.9.id","key9b0");
scorm.SetInteractionValue("cmi.interactions.9.type","choice");
scorm.SetInteractionValue("cmi.interactions.9.correct_responses.0.pattern",
"1");
for (var i=0; i < 2; i++)
{
if (document.getElementById("quizForm0").key9b0[i].checked)
{
question9 = document.getElementById("quizForm0").key9b0[i].value;
scorm.SetInteractionValue("cmi.interactions.9.student_response",question9);
break;
}
}
}
function calcRawScore(){
if (question0 == key0)
{
scorm.SetInteractionValue("cmi.interactions.0.result","correct");
rawScore++;
}
else
{
scorm.SetInteractionValue("cmi.interactions.0.result","wrong");
}
if (question1 == key1)
{
scorm.SetInteractionValue("cmi.interactions.1.result","correct");
rawScore++;
}
else
{
scorm.SetInteractionValue("cmi.interactions.1.result","wrong");
}
if (question2 == key2)
{
scorm.SetInteractionValue("cmi.interactions.2.result","correct");
rawScore++;
}
else
{
scorm.SetInteractionValue("cmi.interactions.2.result","wrong");
}
if (question3 == key3)
{
scorm.SetInteractionValue("cmi.interactions.3.result","correct");
rawScore++;
}
else
{
scorm.SetInteractionValue("cmi.interactions.3.result","wrong");
}
if (question4 == key4)
{
scorm.SetInteractionValue("cmi.interactions.4.result","correct");
rawScore++;
}
else
{
scorm.SetInteractionValue("cmi.interactions.4.result","wrong");
}
if (question5 == key5)
{
scorm.SetInteractionValue("cmi.interactions.5.result","correct");
rawScore++;
}
else
{
scorm.SetInteractionValue("cmi.interactions.5.result","wrong");
}
if (question6 == key6)
{
scorm.SetInteractionValue("cmi.interactions.6.result","correct");
rawScore++;
}
else
{
scorm.SetInteractionValue("cmi.interactions.6.result","wrong");
}
if (question7 == key7)
{
scorm.SetInteractionValue("cmi.interactions.7.result","correct");
rawScore++;
}
else
{
scorm.SetInteractionValue("cmi.interactions.7.result","wrong");
}
if (question8 == key8)
{
scorm.SetInteractionValue("cmi.interactions.8.result","correct");
rawScore++;
}
else
{
scorm.SetInteractionValue("cmi.interactions.8.result","wrong");
}
if (question9 == key9)
{
scorm.SetInteractionValue("cmi.interactions.9.result","correct");
rawScore++;
}
else
{
scorm.SetInteractionValue("cmi.interactions.9.result","wrong");
}
}
function calcScore2()
{
computeTime(); // the student has stopped here.
document.getElementById("quizForm0").submitB.disabled = true;
getAnswer();
calcRawScore();
actualScore = Math.round(rawScore/numQuestions * 100);
alert("Your score is " + actualScore + "%")
scorm.SetScoreRaw(actualScore+"");
scorm.SetScoreMax("100");
var mode = scorm.GetMode();
if (mode != "review" && mode != "browse"){
if (actualScore < 80)
{
scorm.SetCompletionStatus("incomplete");
scorm.SetSuccessStatus("failed");
}
else
{
scorm.SetCompletionStatus("completed");
scorm.SetSuccessStatus("passed");
}
scorm.SetExit("");
}
exitPageStatus = true;
scorm.save();
scorm.quit();
}
//]]> -->
</script>
感谢您的反馈安德鲁。我开始学习一些jQuery,显然我需要选择它。 –
与Andrew一致,除了关于帧是老式 - iframes是HTML5规范的一部分,甚至有沙盒等新功能。 :)但是,如果你的“课程”就是一系列的问题,你绝对可以做一个单一的网页应用程序的风格。有很多方法和教程(减去SCORM代码)。例如,这是我的Google搜索的最重要结果:http://code.tutsplus.com/tutorials/build-a-spiffy-quiz-engine--net-20185 – pipwerks