⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jcloze6.js_

📁 很棒的在线教学系统
💻 JS_
字号:
[inclScorm1.2]//JCLOZE-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++){			var ThisItemGuesses = '';			var GapLabel = 'Gap_' + (i+1).toString();			var ThisItemScore = Math.floor(State[i].ItemScore * 100) + '';			API.LMSSetValue('cmi.objectives.' + i + '.id', 'obj'+GapLabel);			API.LMSSetValue('cmi.interactions.' + i + '.id', 'int'+GapLabel);			API.LMSSetValue('cmi.objectives.' + i + '.score.raw', ThisItemScore);			API.LMSSetValue('cmi.objectives.' + i + '.score.min', '0');			API.LMSSetValue('cmi.objectives.' + i + '.score.max', '100');			if (State[i].AnsweredCorrectly == true){				API.LMSSetValue('cmi.objectives.' + i + '.status', 'completed');			}			else{				API.LMSSetValue('cmi.objectives.' + i + '.status', 'incomplete');			}			for (var j=0; j<State[i].Guesses.length; j++){				if (j>0){ThisItemGuesses += ' | ';}				ThisItemGuesses += State[i].Guesses[j];			}			API.LMSSetValue('cmi.interactions.' + i + '.type', 'fill-in');			API.LMSSetValue('cmi.interactions.' + i + '.student_response', ThisItemGuesses);		}		API.LMSCommit('');	}}[/inclScorm1.2]//JCLOZE CORE JAVASCRIPT CODEfunction ItemState(){	this.ClueGiven = false;	this.HintsAndChecks = 0;	this.MatchedAnswerLength = 0;	this.ItemScore = 0;	this.AnsweredCorrectly = false;	this.Guesses = new Array();	return this;}var Feedback = '';var Correct = '[strCorrect]';var Incorrect = '[strIncorrect]';var GiveHint = '[strGiveHint]';var CaseSensitive = [boolCaseSensitive];var YourScoreIs = '[strYourScoreIs]';var Finished = false;var Locked = false;var Score = 0;var CurrentWord = 0;var Guesses = '';var TimeOver = false;I = new Array();[strItemArray]State = new Array();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][inclSendResults]	GetUserName();[/inclSendResults][inclPreloadImages]	PreloadImages([PreloadImageList]);[/inclPreloadImages]	var i = 0;	State.length = 0;	for (i=0; i<I.length; i++){		State[i] = new ItemState();	}	ClearTextBoxes();[inclTimer]	StartTimer();[/inclTimer]}function ShowClue(ItemNum){	if (Locked == true){return;}	State[ItemNum].ClueGiven = true;	ShowMessage(I[ItemNum][2]);}function SaveCurrentAnswers(){	var Ans = '';	for (var i=0; i<I.length; i++){		Ans = GetGapValue(i);		if ((Ans.length > 0)&&(Ans != State[i].Guesses[State[i].Guesses.length-1])){			State[i].Guesses[State[i].Guesses.length] = Ans;		}	}}function CompileGuesses(){	var F = document.getElementById('store');	if (F != null){		var Temp = '<?xml version="1.0"?><hpnetresult><fields>';		var GapLabel = '';		for (var i=0; i<State.length; i++){			GapLabel = 'Gap ' + (i+1).toString();			Temp += '<field><fieldname>' + GapLabel + '</fieldname>';			Temp += '<fieldtype>student-responses</fieldtype><fieldlabel>' + GapLabel + '</fieldlabel>';			Temp += '<fieldlabelid>JClozeStudentResponses</fieldlabelid><fielddata>';			for (var j=0; j<State[i].Guesses.length; j++){				if (j>0){Temp += '| ';}				Temp += State[i].Guesses[j] + ' ';			}  		Temp += '</fielddata></field>';		}		Temp += '</fields></hpnetresult>';		Detail = Temp;	}}function CheckAnswers(){	if (Locked == true){return;}	SaveCurrentAnswers();	var AllCorrect = true;//Check each answer	for (var i = 0; i<I.length; i++){		if (State[i].AnsweredCorrectly == false){//If it's right, calculate its score			if (CheckAnswer(i, true) > -1){				var TotalChars = GetGapValue(i).length;				State[i].ItemScore = (TotalChars-State[i].HintsAndChecks)/TotalChars;				if (State[i].ClueGiven == true){State[i].ItemScore /= 2;}				if (State[i].ItemScore <0 ){State[i].ItemScore = 0;}				State[i].AnsweredCorrectly = true;//Drop the correct answer into the page, replacing the text box				SetCorrectAnswer(i, GetGapValue(i));			}			else{//Otherwise, increment the hints for this item, as a penalty				State[i].HintsAndChecks++;//then set the flag				AllCorrect = false;			}		}	}//Calculate the total score	var TotalScore = 0;	for (i=0; i<State.length; i++){		TotalScore += State[i].ItemScore;	}	TotalScore = Math.floor((TotalScore * 100)/I.length);//Compile the output	Output = '';	if (AllCorrect == true){		Output = Correct + '<br />';	}	Output += YourScoreIs + ' ' + TotalScore + '%.<br />';	if (AllCorrect == false){		Output += '<br />' + Incorrect;	}	ShowMessage(Output);	setTimeout('WriteToInstructions(Output)', 50);	Score = TotalScore;	CompileGuesses();	if ((AllCorrect == true)||(Finished == true)){[inclSendResults]		setTimeout('SendResults(' + TotalScore + ')', 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 TrackFocus(BoxNumber){	CurrentWord = BoxNumber;	InTextBox = true;}function LeaveGap(){	InTextBox = false;}function CheckBeginning(Guess, Answer){	var OutString = '';	var i = 0;	var UpperGuess = '';	var UpperAnswer = '';	if (CaseSensitive == false) {		UpperGuess = Guess.toUpperCase();		UpperAnswer = Answer.toUpperCase();	}	else {		UpperGuess = Guess;		UpperAnswer = Answer;	}	while (UpperGuess.charAt(i) == UpperAnswer.charAt(i)) {		OutString += Guess.charAt(i);		i++;	}	OutString += Answer.charAt(i);	return OutString;}function GetGapValue(GNum){	var RetVal = '';	if ((GNum<0)||(GNum>=I.length)){return RetVal;}	if (document.getElementById('Gap' + GNum) != null){		RetVal = document.getElementById('Gap' + GNum).value;		RetVal = TrimString(RetVal);	}	else{		RetVal = State[GNum].Guesses[State[GNum].Guesses.length-1];	}	return RetVal;}function SetGapValue(GNum, Val){	if ((GNum<0)||(GNum>=I.length)){return;}	if (document.getElementById('Gap' + GNum) != null){		document.getElementById('Gap' + GNum).value = Val;		document.getElementById('Gap' + GNum).focus();	}}function SetCorrectAnswer(GNum, Val){	if ((GNum<0)||(GNum>=I.length)){return;}	if (document.getElementById('GapSpan' + GNum) != null){		document.getElementById('GapSpan' + GNum).innerHTML = Val;	}}function FindCurrent() {	var x = 0;	FoundCurrent = -1;//Test the current word://If its state is not set to already correct, check the word.	if (State[CurrentWord].AnsweredCorrectly == false){		if (CheckAnswer(CurrentWord, false) < 0){			return CurrentWord;		}	}	x=CurrentWord + 1;	while (x<I.length){		if (State[x].AnsweredCorrectly == false){			if (CheckAnswer(x, false) < 0){				return x;			}		}	x++;	}	x = 0;	while (x<CurrentWord){		if (State[x].AnsweredCorrectly == false){			if (CheckAnswer(x, false) < 0){				return x;			}		}	x++;	}	return FoundCurrent;}function CheckAnswer(GapNum, MarkAnswer){	var Guess = GetGapValue(GapNum);	var UpperGuess = '';	var UpperAnswer = '';	if (CaseSensitive == false){		UpperGuess = Guess.toUpperCase();	}	else{		UpperGuess = Guess;	}	var Match = -1;	for (var i = 0; i<I[GapNum][1].length; i++){		if (CaseSensitive == false){			UpperAnswer = I[GapNum][1][i][0].toUpperCase();		}		else{			UpperAnswer = I[GapNum][1][i][0];		}		if (TrimString(UpperGuess) == UpperAnswer){			Match = i;			if (MarkAnswer == true){				State[GapNum].AnsweredCorrectly = true;			}		}	}	return Match;}function GetHint(GapNum){	Guess = GetGapValue(GapNum);	if (CheckAnswer(GapNum, false) > -1){return ''}	RightBits = new Array();	for (var i=0; i<I[GapNum][1].length; i++){		RightBits[i] = CheckBeginning(Guess, I[GapNum][1][i][0]);	}	var RightOne = FindLongest(RightBits);	var Result = I[GapNum][1][RightOne][0].substring(0,RightBits[RightOne].length);//Add another char if the last one is a space	if (Result.charAt(Result.length-1) == ' '){		Result = I[GapNum][1][RightOne][0].substring(0,RightBits[RightOne].length+1);	}	return Result;}function ShowHint(){	if (document.getElementById('FeedbackDiv').style.display == 'block'){return;}	if (Locked == true){return;}	var CurrGap = FindCurrent();	if (CurrGap < 0){return;}	var HintString = GetHint(CurrGap);	if (HintString.length > 0){		SetGapValue(CurrGap, HintString);		State[CurrGap].HintsAndChecks += 1;	}	ShowMessage(GiveHint);}function TypeChars(Chars){	var CurrGap = FindCurrent();	if (CurrGap < 0){return;}	if (document.getElementById('Gap' + CurrGap) != null){		SetGapValue(CurrGap, document.getElementById('Gap' + CurrGap).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 + -