SCORM课件

因工作需求,需要使用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;

});

实现之后再html页面上加入
<script>
    window.API_1484_11 = new APIForLMS();
</script>

    
    
如此,SCORM课件标准便可以找到标准API
当然,在form中可以看见数据,调试成功后将input标签去除,进而使用JavaScript全局变量


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值