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

📄 jmatch6.js_

📁 很棒的在线教学系统
💻 JS_
字号:
[inclScorm1.2]//JMATCH-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 = 'Matching';		API.LMSSetValue('cmi.objectives.0.id', 'obj'+ItemLabel);		API.LMSSetValue('cmi.interactions.0.id', 'int'+ItemLabel);		API.LMSSetValue('cmi.objectives.0.status', API.LMSGetValue('cmi.core.lesson_status'));		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 can only use the performance type, because we're storing multiple responses of various types.		API.LMSSetValue('cmi.interactions.0.type', 'performance');		var AnswersTried = '';		for (var i=0; i<Status[0][3].length; i++){			if (i>0){AnswersTried += ' | ';}			for (var j=0; j<Status.length; j++){				if (j>0){AnswersTried += ',';}				AnswersTried += j + '.' + Status[j][3][i];			}		}		API.LMSSetValue('cmi.interactions.0.student_response', AnswersTried);		API.LMSCommit('');	}}[/inclScorm1.2]//JMATCH CORE JAVASCRIPT CODEvar CorrectIndicator = '[strCorrectIndicator]';var IncorrectIndicator = '[strIncorrectIndicator]';var YourScoreIs = '[strYourScoreIs]';var CorrectResponse = '[strGuessCorrect]';var IncorrectResponse = '[strGuessIncorrect]';var TotalUnfixedLeftItems = 0;var TotCorrectChoices = 0;var Penalties = 0;var Finished = false;var TimeOver = false;var Score = 0;var Locked = false;var ShuffleQs = [boolShuffleQs];var QsToShow = [QsToShow];function StartUp(){	RemoveBottomNavBarForIE();[inclScorm1.2]	ScormStartUp();[/inclScorm1.2][inclSendResults]	GetUserName();[/inclSendResults][inclPreloadImages]	PreloadImages([PreloadImageList]);[/inclPreloadImages]	SetUpItems(ShuffleQs,QsToShow);	TotalUnfixedLeftItems = document.getElementById('MatchDiv').getElementsByTagName('select').length;//Create arrays	CreateStatusArrays();[inclTimer]	StartTimer();[/inclTimer]}Status = new Array();function CreateStatusArrays(){	var Selects = document.getElementById('Questions').getElementsByTagName('select');	for (var x=0; x<Selects.length; x++){		Status[x] = new Array();		Status[x][0] = 0; // Item not matched correctly yet		Status[x][1] = 0; //Tries at this item so far		Status[x][2] = Selects[x].id; //Store a ref to the original drop-down		Status[x][3] = new Array(); //Sequence of guesses for this item	}}function GetKeyFromSelectContainer(Container){	var Result = -1;	if (Container.getElementsByTagName('select').length > 0){		var Select = Container.getElementsByTagName('select')[0];		if (Select != null){			Result = parseInt(Select.id.substring(1, Select.id.length));		}	}	return Result;}function GetKeyFromSelect(Select){	var Result = -1;	if (Select != null){		Result = parseInt(Select.id.substring(1, Select.id.length));	}	return Result;}var OriginalKeys = new Array();var ReducedKeys = new Array();function GetUniqueKeys(Container, TargetArray){	TargetArray.length = 0;	var x = -1;	var SList = Container.getElementsByTagName('select');	if (SList.length > 0){		for (var i=0; i<SList.length; i++){			x = GetKeyFromSelect(SList[i]);			if (TargetArray.indexOf(x) < 0){				TargetArray.push(x);			}		}	}}function SetUpItems(ShuffleQs, ReduceTo){	var QList = new Array();	var i, j, k, Selects, Options;//Remove all the table rows and put them in an array for processing	var Qs = document.getElementById('Questions');//First, get a list of keys	GetUniqueKeys(Qs, OriginalKeys);//Remove the table rows to an array	while (Qs.getElementsByTagName('tr').length > 0){		QList.push(Qs.removeChild(Qs.getElementsByTagName('tr')[0]));	}	var Reducing = (QList.length > ReduceTo);//If required, select random rows to delete	if (Reducing == true){		var DumpItem = 0;		while (ReduceTo < QList.length){//Get a number to delete from the array			DumpItem = Math.floor(QList.length*Math.random());			for (i=DumpItem; i<(QList.length-1); i++){				QList[i] = QList[i+1];			}			QList.length = QList.length-1;		}	}//Shuffle the rows if necessary	if (ShuffleQs == true){		QList = Shuffle(QList);	}	TotalUnfixedLeftItems = QList.length;//Write the rows back to the table body	for (i=0; i<QList.length; i++){		Qs.appendChild(QList[i]);	}//Now we need to remove any drop-down options that no longer have associated select items	if (Reducing == true){		GetUniqueKeys(Qs, ReducedKeys);		Selects = Qs.getElementsByTagName('select');		for (i=0; i<Selects.length; i++){			Options = Selects[i].getElementsByTagName('option');			for (j=Options.length-1; j>=0; j--){				if (OptionRequired(Options[j].value) == false){					Selects[i].removeChild(Options[j]);				}			}		}	}}function OptionRequired(Key){	if (ReducedKeys.indexOf(Key) > -1){		return true;	}	else{		if (OriginalKeys.indexOf(Key) > -1){			return false;		}		else{			return true;		}	}}function CheckAnswers(){	if (Locked == true){return;}	var Select = null;	var Key = -1;	var Parent = null;	var Answer = null;	var AnsText = '';	var AllDone = true;	TotCorrectChoices = 0;//for each item not fixed or a distractor	for (var i=0; i<Status.length; i++){//if it hasn't been answered correctly yet		if (Status[i][0] < 1){//Add one to the number of tries for this item			Status[i][1]++;//Get a pointer to the drop-down			Select = document.getElementById(Status[i][2]);			Key = GetKeyFromSelect(Select);//Save the answer given			Status[i][3].push(Select.options[Select.selectedIndex].value);//Check the answer			if (Select.options[Select.selectedIndex].value == Key){					Status[i][0] = 1;					AnsText = Select.options[Select.selectedIndex].innerHTML;					Parent = Select.parentNode;					Parent.removeChild(Select);					Parent.innerHTML = AnsText;					Parent.nextSibling.innerHTML = CorrectIndicator;			}			else{				AllDone = false;				Parent = Select.parentNode;				Parent.nextSibling.innerHTML = IncorrectIndicator;			}		}		else{//Add a copy of the last (correct) answer.			Status[i][3].push(Status[i][3][Status[i][3].length-1]);		}//If it's correct, count it		if (Status[i][0] == 1){			TotCorrectChoices++;		}	}//Calculate the score	Score = Math.floor(((TotCorrectChoices-Penalties)/TotalUnfixedLeftItems)*100);	if (Score<0){Score = 0;}	var Feedback = '';//Build the feedback	if (AllDone == true){		Feedback = CorrectResponse + '<br />' + YourScoreIs + Score + '%.';	}	else{		Feedback = IncorrectResponse + '<br />' + YourScoreIs + Score + '%.';//Penalty for incorrect check		Penalties++;	}//If the exercise is over, deal with that	if ((AllDone == true)||(TimeOver == true)){[inclSendResults]		setTimeout('SendResults(' + Score + ')', 50);[/inclSendResults][inclTimer]		window.clearInterval(Interval);[/inclTimer]		TimeOver = true;		Locked = true;		Finished = true;		setTimeout('Finish()', SubmissionTimeout);		WriteToInstructions(Feedback);	}//Show the feedback	ShowMessage(Feedback);[inclScorm1.2]	if (AllDone == true){		SetScormComplete();	}	else{		SetScormIncomplete();	}[/inclScorm1.2]}[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 + -