📄 jquiz6.js_
字号:
[inclScorm1.2]//JQUIZ-SPECIFIC SCORM-RELATED JAVASCRIPT CODEfunction SetScormScore(){//Reports the current score and any other information back to the LMS if (API != null){ API.LMSSetValue('cmi.core.score.raw', Score);//Now send detailed reports about each item for (var i=0; i<State.length; i++){ if (State[i] != null){ var ItemLabel = 'Item_' + (i+1).toString(); var ThisItemScore = ''; var ThisItemStatus = ''; API.LMSSetValue('cmi.objectives.' + i + '.id', 'obj'+ItemLabel); API.LMSSetValue('cmi.interactions.' + i + '.id', 'int'+ItemLabel); API.LMSSetValue('cmi.objectives.' + i + '.score.min', '0'); API.LMSSetValue('cmi.objectives.' + i + '.score.max', '100'); if (State[i][2] > 0){ ThisItemScore = Math.floor(State[i][0] * 100) + ''; ThisItemStatus = 'completed'; } else{ ThisItemScore = '0'; ThisItemStatus = 'incomplete'; } API.LMSSetValue('cmi.objectives.' + i + '.score.raw', ThisItemScore); API.LMSSetValue('cmi.objectives.' + i + '.status', ThisItemStatus); API.LMSSetValue('cmi.interactions.' + i + '.weighting', I[i][0]);//We can only use the performance type, because we're storing multiple responses of various types. API.LMSSetValue('cmi.interactions.' + i + '.type', 'performance'); API.LMSSetValue('cmi.interactions.' + i + '.student_response', State[i][5]); } } API.LMSCommit(''); }}[/inclScorm1.2]//JQUIZ CORE JAVASCRIPT CODEvar CurrQNum = 0;var CorrectIndicator = '[strCorrectIndicator]';var IncorrectIndicator = '[strIncorrectIndicator]';var YourScoreIs = '[strYourScoreIs]';var ContinuousScoring = [boolContinuousScoring];var CorrectFirstTime = '[strCorrectFirstTime]';var ShowCorrectFirstTime = [boolShowCorrectFirstTime];var ShuffleQs = [boolShuffleQs];var ShuffleAs = [boolShuffleAs];var DefaultRight = '[strDefaultRight]';var DefaultWrong = '[strDefaultWrong]';var QsToShow = [QsToShow];var Score = 0;var Finished = false;var Qs = null;var QArray = new Array();var ShowingAllQuestions = false;var ShowAllQuestionsCaption = '[strShowAllQuestionsCaptionJS]';var ShowOneByOneCaption = '[strShowOneByOneCaptionJS]';var State = new Array();var Feedback = '';var TimeOver = false;var strInstructions = '';var Locked = false;//The following variable can be used to add a message explaining that//the question is finished, so no further marking will take place.var strQuestionFinished = '';function CompleteEmptyFeedback(){ var QNum, ANum; for (QNum=0; QNum<I.length; QNum++){//Only do this if not multi-select if (I[QNum][2] != '3'){ for (ANum = 0; ANum<I[QNum][3].length; ANum++){ if (I[QNum][3][ANum][1].length < 1){ if (I[QNum][3][ANum][2] > 0){ I[QNum][3][ANum][1] = DefaultRight; } else{ I[QNum][3][ANum][1] = DefaultWrong; } } } } }}function SetUpQuestions(){ var AList = new Array(); var QList = new Array(); var i, j; Qs = document.getElementById('Questions'); while (Qs.getElementsByTagName('li').length > 0){ QList.push(Qs.removeChild(Qs.getElementsByTagName('li')[0])); } var DumpItem = 0; if (QsToShow > QList.length){ QsToShow = QList.length; } while (QsToShow < QList.length){ DumpItem = Math.floor(QList.length*Math.random()); for (j=DumpItem; j<(QList.length-1); j++){ QList[j] = QList[j+1]; } QList.length = QList.length-1; } if (ShuffleQs == true){ QList = Shuffle(QList); } if (ShuffleAs == true){ var As; for (var i=0; i<QList.length; i++){ As = QList[i].getElementsByTagName('ol')[0]; if (As != null){ AList.length = 0; while (As.getElementsByTagName('li').length > 0){ AList.push(As.removeChild(As.getElementsByTagName('li')[0])); } AList = Shuffle(AList); for (j=0; j<AList.length; j++){ As.appendChild(AList[j]); } } } } for (i=0; i<QList.length; i++){ Qs.appendChild(QList[i]); QArray[QArray.length] = QList[i]; }//Show the first item QArray[0].style.display = '';//Now hide all except the first item for (i=1; i<QArray.length; i++){ QArray[i].style.display = 'none'; } SetQNumReadout(); SetFocusToTextbox();}function SetFocusToTextbox(){//if there's a textbox, set the focus in it if (QArray[CurrQNum].getElementsByTagName('input')[0] != null){ QArray[CurrQNum].getElementsByTagName('input')[0].focus();//and show a keypad if there is one if (document.getElementById('CharacterKeypad') != null){ document.getElementById('CharacterKeypad').style.display = 'block'; } } else{ if (QArray[CurrQNum].getElementsByTagName('textarea')[0] != null){ QArray[CurrQNum].getElementsByTagName('textarea')[0].focus();//and show a keypad if there is one if (document.getElementById('CharacterKeypad') != null){ document.getElementById('CharacterKeypad').style.display = 'block'; } }//This added for 6.0.4.11: hide accented character buttons if no textbox else{ if (document.getElementById('CharacterKeypad') != null){ document.getElementById('CharacterKeypad').style.display = 'none'; } } }}function ChangeQ(ChangeBy){//The following line prevents moving to another question until the current//question is answered correctly. Uncomment it to enable this behaviour.// if (State[CurrQNum][0] == -1){return;} if (((CurrQNum + ChangeBy) < 0)||((CurrQNum + ChangeBy) >= QArray.length)){return;} QArray[CurrQNum].style.display = 'none'; CurrQNum += ChangeBy; QArray[CurrQNum].style.display = '';//Undocumented function added 10/12/2004 ShowSpecialReadingForQuestion(); SetQNumReadout(); SetFocusToTextbox();}var HiddenReadingShown = false;function ShowSpecialReadingForQuestion(){//Undocumented function for showing specific reading text elements which change with each question//Added on 10/12/2004 if (document.getElementById('ReadingDiv') != null){ if (HiddenReadingShown == true){ document.getElementById('ReadingDiv').innerHTML = ''; } if (QArray[CurrQNum] != null){//Fix for 6.0.4.25 var Children = QArray[CurrQNum].getElementsByTagName('div'); for (var i=0; i<Children.length; i++){ if (Children[i].className=="HiddenReading"){ document.getElementById('ReadingDiv').innerHTML = Children[i].innerHTML; HiddenReadingShown = true;//Hide the ShowAllQuestions button to avoid confusion if (document.getElementById('ShowMethodButton') != null){ document.getElementById('ShowMethodButton').style.display = 'none'; } } } } }}function SetQNumReadout(){ document.getElementById('QNumReadout').innerHTML = (CurrQNum+1) + ' / ' + QArray.length; if ((CurrQNum+1) >= QArray.length){ if (document.getElementById('NextQButton') != null){ document.getElementById('NextQButton').style.visibility = 'hidden'; } } else{ if (document.getElementById('NextQButton') != null){ document.getElementById('NextQButton').style.visibility = 'visible'; } } if (CurrQNum <= 0){ if (document.getElementById('PrevQButton') != null){ document.getElementById('PrevQButton').style.visibility = 'hidden'; } } else{ if (document.getElementById('PrevQButton') != null){ document.getElementById('PrevQButton').style.visibility = 'visible'; } }}[strItemArray]function StartUp(){ RemoveBottomNavBarForIE();//If there's only one question, no need for question navigation controls if (QsToShow < 2){ document.getElementById('QNav').style.display = 'none'; }//Stash the instructions so they can be redisplayed strInstructions = document.getElementById('InstructionsDiv').innerHTML;[inclScorm1.2] ScormStartUp();[/inclScorm1.2][inclSendResults] GetUserName();[/inclSendResults][inclPreloadImages] PreloadImages([PreloadImageList]);[/inclPreloadImages] CompleteEmptyFeedback(); SetUpQuestions(); ClearTextBoxes(); CreateStatusArray();[inclTimer] setTimeout('StartTimer()', 50);[/inclTimer]//Check search string for q parameter if (document.location.search.length > 0){ if (ShuffleQs == false){ var JumpTo = parseInt(document.location.search.substring(1,document.location.search.length))-1; if (JumpTo <= QsToShow){ ChangeQ(JumpTo); } } }//Undocumented function added 10/12/2004 ShowSpecialReadingForQuestion();}function ShowHideQuestions(){ FuncBtnOut(document.getElementById('ShowMethodButton')); document.getElementById('ShowMethodButton').style.display = 'none'; if (ShowingAllQuestions == false){ for (var i=0; i<QArray.length; i++){ QArray[i].style.display = ''; } document.getElementById('Questions').style.listStyleType = 'decimal'; document.getElementById('OneByOneReadout').style.display = 'none'; document.getElementById('ShowMethodButton').innerHTML = ShowOneByOneCaption; ShowingAllQuestions = true; } else{ for (var i=0; i<QArray.length; i++){ if (i != CurrQNum){ QArray[i].style.display = 'none'; } } document.getElementById('Questions').style.listStyleType = 'none'; document.getElementById('OneByOneReadout').style.display = ''; document.getElementById('ShowMethodButton').innerHTML = ShowAllQuestionsCaption; ShowingAllQuestions = false; } document.getElementById('ShowMethodButton').style.display = 'inline';}function CreateStatusArray(){ var QNum, ANum;//For each item in the item array for (QNum=0; QNum<I.length; QNum++){//Check if the question still exists (hasn't been nuked by showing a random selection) if (document.getElementById('Q_' + QNum) != null){ State[QNum] = new Array(); State[QNum][0] = -1; //Score for this q; -1 shows question not done yet State[QNum][1] = new Array(); //answers for (ANum = 0; ANum<I[QNum][3].length; ANum++){ State[QNum][1][ANum] = 0; //answer not chosen yet; when chosen, will store its position in the series of choices } State[QNum][2] = 0; //tries at this q so far State[QNum][3] = 0; //incrementing percent-correct values of selected answers State[QNum][4] = 0; //penalties incurred for hints State[QNum][5] = ''; //Sequence of answers chosen by number } else{ State[QNum] = null; } }}[inclMultiChoice]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -