📄 jcross6.js_
字号:
[inclScorm1.2]//JCROSS-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 a detailed reports on the item var ItemLabel = 'Crossword'; API.LMSSetValue('cmi.objectives.0.id', 'obj'+ItemLabel); API.LMSSetValue('cmi.interactions.0.id', 'int'+ItemLabel); if (Finished == true){ API.LMSSetValue('cmi.objectives.0.status', 'completed'); } else{ API.LMSSetValue('cmi.objectives.0.status', 'incomplete'); } API.LMSSetValue('cmi.objectives.0.score.min', '0'); API.LMSSetValue('cmi.objectives.0.score.max', '100'); API.LMSSetValue('cmi.objectives.0.score.raw', Score);//We're not sending any student response data, so we can set this to a non-standard value API.LMSSetValue('cmi.interactions.0.type', 'crossword'); API.LMSCommit(''); }}[/inclScorm1.2]//JCROSS CORE JAVASCRIPT CODEvar InGap = false;var CurrentBox = null;var Feedback = '';var AcrossCaption = '';var DownCaption = '';var Correct = '[strCorrect]';var Incorrect = '[strIncorrect]';var GiveHint = '[strGiveHint]';var YourScoreIs = '[strYourScoreIs]';var BuiltGrid = '';var BuiltExercise = '';var Penalties = 0;var Score = 0;var InTextBox = false;var Locked = false;var TimeOver = false;var CaseSensitive = [boolCaseSensitive];var InputStuff = '<form method="post" action="" onsubmit="return false;"><span class="ClueNum">[strClueNum]: </span>';InputStuff += '[strClue] <input onfocus="CurrentBox=this;InTextBox=true;" onblur="InTextBox=false;" id="[strBoxId]" type="edit" size="[strEditSize]" maxlength="[strMaxLength]"></input>';InputStuff += '<button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="EnterGuess([strParams])">[strEnterCaption]</button>';InputStuff += '[inclHint]<button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="ShowHint([strParams])">[strHintCaption]</button>[/inclHint]';InputStuff += '</form>';var CurrBoxElement = null;var Finished = false;function StartUp(){ RemoveBottomNavBarForIE();//Show a keypad if there is one (added bugfix for 6.0.4.12) if (document.getElementById('CharacterKeypad') != null){ document.getElementById('CharacterKeypad').style.display = 'block'; }[inclScorm1.2] ScormStartUp();[/inclScorm1.2] AcrossCaption = document.getElementById('CluesAcrossLabel').innerHTML; DownCaption = document.getElementById('CluesDownLabel').innerHTML;[inclSendResults] GetUserName();[/inclSendResults][inclPreloadImages] PreloadImages([PreloadImageList]);[/inclPreloadImages][inclTimer] StartTimer();[/inclTimer]}function GetAnswerLength(Across,x,y){ Result = 0; if (Across == false){ while ((x<L.length)&&(L[x][y].length > 0)){ Result += L[x][y].length; x++; } return Result; } else{ while ((y<L[x].length)&&(L[x][y].length > 0)){ Result += L[x][y].length; y++; } return Result; }}function GetEditSize(Across,x,y){ var Len = GetAnswerLength(Across,x,y); if (IsCJK(L[x][y].charCodeAt(0))){ Len *= 2; } return Len;}function ShowClue(ClueNum,x,y){ var Result = ''; var Temp; var strParams; var Clue = document.getElementById('Clue_A_' + ClueNum); if (Clue != null){ Temp = InputStuff.replace(/\[ClueNum\]/g, ClueNum); Temp = Temp.replace(/\[strClueNum\]/g, AcrossCaption + ' ' + ClueNum); strParams = 'true,' + ClueNum + ',' + x + ',' + y + ',\'[strBoxId]\''; Temp = Temp.replace(/\[strParams\]/g, strParams); Temp = Temp.replace(/\[strBoxId\]/g, 'GA_' + ClueNum + '_' + x + '_' + y); Temp = Temp.replace(/\[strEditSize\]/g, GetEditSize(true,x,y)); Temp = Temp.replace(/\[strMaxLength\]/g, GetAnswerLength(true,x,y)); Temp = Temp.replace(/\[strClue\]/g, Clue.innerHTML, Temp); Result += Temp; } Clue = document.getElementById('Clue_D_' + ClueNum); if (Clue != null){ Temp = InputStuff.replace(/\[ClueNum\]/g, ClueNum); Temp = Temp.replace(/\[strClueNum\]/g, DownCaption + ' ' + ClueNum); strParams = 'false,' + ClueNum + ',' + x + ',' + y + ',\'[strBoxId]\''; Temp = Temp.replace(/\[strParams\]/g, strParams); Temp = Temp.replace(/\[strBoxId\]/g, 'GD_' + ClueNum + '_' + x + '_' + y); Temp = Temp.replace(/\[strEditSize\]/g, GetAnswerLength(false,x,y)); Temp = Temp.replace(/\[strClue\]/g, Clue.innerHTML, Temp); Result += Temp; } document.getElementById('ClueEntry').innerHTML = Result;}function EnterGuess(Across,ClueNum,x,y,BoxId){ if (document.getElementById(BoxId) != null){ var Guess = document.getElementById(BoxId).value; var AnsLength = GetAnswerLength(Across,x,y); EnterAnswer(Guess,Across,AnsLength,x,y); }}function SplitStringToPerceivedChars(InString, PC){ var Temp = InString.charAt(0); if (InString.length > 1){ for (var i=1; i<InString.length; i++){ if (IsCombiningDiacritic(InString.charCodeAt(i)) == true){ Temp += InString.charAt(i); } else{ PC.push(Temp); Temp = InString.charAt(i); } } } PC.push(Temp);}function EnterAnswer(Guess,Across,AnsLength,x,y){ var PC = new Array(); SplitStringToPerceivedChars(Guess, PC); var i=x; var j=y; var Letter = 0; while (Letter < AnsLength){ if (Letter < PC.length){ G[i][j] = PC[Letter]; if (document.getElementById('L_' + i + '_' + j) != null){ document.getElementById('L_' + i + '_' + j).innerHTML = PC[Letter]; } } if (Across == true){ j++; } else{ i++; } Letter++; }}function SetGridSquareValue(x,y,Val){ var GridId = 'L_' + x + '_' + y; if (document.getElementById(GridId) != null){ document.getElementById(GridId).innerHTML = Val; }}function ShowHint(Across,ClueNum,x,y,BoxId){ var i=x; var j=y; var LetterFromGuess = ''; var LetterFromKey = ''; var OutString = ''; if (Across==true){ while (j<L[i].length){ if (L[i][j] != ''){ OutString += L[i][j]; if (CaseSensitive == true){ LetterFromKey = L[i][j]; LetterFromGuess = G[i][j]; } else { LetterFromKey = L[i][j].toUpperCase(); LetterFromGuess = G[i][j].toUpperCase(); } if (LetterFromGuess != LetterFromKey){// if (G[i][j] != L[i][j]){ G[i][j] = L[i][j]; Penalties++; break; } } else{ break; } j++; } } else{ while (i<L.length){ if (L[i][j] != ''){ OutString += L[i][j]; if (CaseSensitive == true){ LetterFromKey = L[i][j]; LetterFromGuess = G[i][j]; } else { LetterFromKey = L[i][j].toUpperCase(); LetterFromGuess = G[i][j].toUpperCase(); } if (LetterFromGuess != LetterFromKey){// if (G[i][j] != L[i][j]){ G[i][j] = L[i][j]; Penalties++; break; } } else{ break; } i++; } } if (document.getElementById(BoxId) != null){ document.getElementById(BoxId).value = OutString; }}L = new Array();[strLetterArray]CL = new Array();[strClueNumArray]G = new Array();[strGuessArray]function CheckAnswers(){ if (Locked == true){return;} var AllCorrect = true; var TotLetters = 0; var CorrectLetters = 0; var LetterFromKey = ''; var LetterFromGuess = '';//Check each letter for (var i=0; i<L.length; i++){ for (var j=0; j<L[i].length; j++){ if (L[i][j] != ''){ TotLetters++; if (CaseSensitive == true) { LetterFromKey = L[i][j]; LetterFromGuess = G[i][j]; } else { LetterFromKey = L[i][j].toUpperCase(); LetterFromGuess = G[i][j].toUpperCase(); } if (LetterFromGuess != LetterFromKey){ G[i][j] = '';//Blank that square in the grid SetGridSquareValue(i,j,''); AllCorrect = false; } else{ CorrectLetters++; } } } } Score = Math.floor(((CorrectLetters-Penalties) * 100)/TotLetters); if (Score < 0){Score = 0;}//Compile the output var Output = ''; if (AllCorrect == true){ Output = Correct + '<br />'; } Output += YourScoreIs + ' ' + Score + '%.<br />'; if (AllCorrect == false){ Output += Incorrect; Penalties++; } ShowMessage(Output); WriteToInstructions(Output); if ((AllCorrect == true)||(TimeOver == true)){[inclSendResults] setTimeout('SendResults(' + Score + ')', 50);[/inclSendResults][inclTimer] window.clearInterval(Interval);[/inclTimer] TimeOver = true; Locked = true; Finished = true; setTimeout('Finish()', SubmissionTimeout); }[inclScorm1.2] if (AllCorrect == true){ SetScormComplete(); } else{ SetScormIncomplete(); }[/inclScorm1.2]}function Finish(){//If there's a form, fill it out and submit it if (document.store != null){ Frm = document.store; Frm.starttime.value = HPNStartTime; Frm.endtime.value = (new Date()).getTime(); Frm.mark.value = Score; Frm.submit(); }}function TypeChars(Chars){ if (CurrentBox != null){ CurrentBox.value += Chars; }}[inclTimer]function TimesUp() { document.getElementById('Timer').innerHTML = '[strTimesUp]';[inclPreloadImages] RefreshImages();[/inclPreloadImages] TimeOver = true; Finished = true; CheckAnswers(); Locked = true;[inclScorm1.2] SetScormTimedOut();[/inclScorm1.2]}[/inclTimer]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -