因工作需求,需要使用SCORM课件,所以必须实现SCORM标准提供的接口。从网上查询资料发现很多都是在web上使用JavaApplet去实现,但现在JavaApplet在大多数浏览器中都不再支持也不建议使用了,因此只能寻找另外的解决办法。
所以,在经过一段时间思考后发现,SCORM课件的标准接口需要在抓取页面上相应标准的API来实现对接的(SCORM1.2为API,SCORM2004为API_1484_11),因此想到用ajax来实现。
var Initialize = function(parameter) {
var record = $.ajax({
type:"post",
url:自己的URL,
async:false,
dataType:"html",
data:{
learningCoursewareId:buttonform.learningCoursewareId.value,
memberId:buttonform.memberId.value,
},
success:function (resulte) {
resulteCom(resulte);
}
});
}
return true;
};
var resulteCom = function(value) {
buttonform.memberId.value = value.member.id;
buttonform.status.value = "not attempted";
buttonform.cumulativeDuration.value = value.cumulativeDuration;
if(obj.status=="not attempted"){
buttonform.entry.value = "ab-initio";
} else {
buttonform.entry.value = "resume";
}
if(obj.status=="not attempted"){
buttonform.lessonMode.value = "normal";
}
};
var Terminate = function(parameter) {
Commit("");
return "true";
};
var GetValue = function(name) {
var reCode="";
switch(name)
{
case "cmi.core.student_id":
return buttonform.memberId.value;
break;
case "cmi.core.student_name":
return buttonform.memberName.value;
break;
case "cmi.core.lesson_location":
return buttonform.scoLocation.value;
break;
case "cmi.core.credit":
return buttonform.Credit.value;
break;
case "cmi.core.lesson_status":
return buttonform.status.value;
break;
case "cmi.core.entry":
return buttonform.entry.value;
break;
case "cmi.core.score":
return buttonform.score.value;
break;
case "cmi.core.score.raw":
return buttonform.score.value;
break;
case "cmi.core.total_time":
return buttonform.cumulativeDuration.value;
break;
case "cmi.core.lesson_mode":
return buttonform.lessonMode.value;
break;
case "cmi.core.exit":
return buttonform.LessonExit.value;
break;
case "cmi.core.session_time":
return buttonform.sessionTime.value;
break;
case "cmi.suspend_data":
return buttonform.SuspendData.value;
break;
default:
break;
}
return reCode;
};
var SetValue = function(name, value) {
switch(name)
{
case "cmi.core.student_id":
buttonform.memberId.value = value;
break;
case "cmi.core.student_name":
buttonform.memberName.value = value;
break;
case "cmi.core.lesson_location":
buttonform.scoLocation.value = value;
break;
case "cmi.core.credit":
buttonform.Credit.value = value;
break;
case "cmi.core.lesson_status":
if(buttonform.status.value != "completed"){
buttonform.status.value = value;
}
break;
case "cmi.core.entry":
buttonform.entry.value = value;
break;
case "cmi.core.score":
buttonform.score.value = value;
break;
case "cmi.core.score.raw":
buttonform.score.value = value;
break;
case "cmi.core.total_time":
buttonform.cumulativeDuration.value =value;
break;
case "cmi.core.lesson_mode":
buttonform.lessonMode.value = value;
break;
case "cmi.core.exit":
buttonform.LessonExit.value = value;
break;
case "cmi.core.session_time":
buttonform.sessionTime.value = value;
break;
case "cmi.suspend_data":
buttonform.SuspendData.value = value;
break;
default:
break;
}
// Commit("");
return true;
};
var Commit = function(parameter) {
$.ajax({
type:"post",
url:自己的URL,
async:false,
dataType:"html",
data:{
learningCoursewareId:buttonform.learningCoursewareId.value,
memberId:buttonform.memberId.value,
memberName:buttonform.memberName.value,
scoLocation:buttonform.scoLocation.value,
Credit:buttonform.Credit.value,
status:buttonform.status.value,
entry:buttonform.entry.value,
score:buttonform.score.value,
cumulativeDuration:buttonform.cumulativeDuration.value,
lessonMode:buttonform.lessonMode.value,
LessonExit:buttonform.LessonExit.value,
sessionTime:buttonform.sessionTime.value,
SuspendData:buttonform.SuspendData.value,
},
success:function (resulte) {
if(resulte==true){
return true;
}
else{
return false;
}
}
})
};
var GetLastError = function() {
return "0";
};
var GetErrorString = function(parameter) {
return "no error";
};
var GetDiagnostic = function GetDiagnostic(parameter) {
return "no error";
};
window.APIForLMS =(function () {
this.LMSInitialize = Initialize;
this.LMSFinish = Terminate;
this.LMSGetValue = GetValue;
this.LMSSetValue = SetValue;
this.LMSCommit = Commit;
this.LMSGetLastError = GetLastError;
this.LMSGetErrorString = GetErrorString;
this.LMSGetDiagnostic = GetDiagnostic;
});
<script>
window.API_1484_11 = new APIForLMS();
</script>