分享

AJAX写scorm1.2标准播放器中的API adapter例子

 用勿龍潛 2014-02-21

AJAX写scorm1.2标准播放器中的API adapter例子

function init(){
   API = new API_Calls();
   
}

function API_Calls() {
    this.LMSInitialize = LMSInitialize;
    this.LMSSetValue = LMSSetValue;
    this.LMSGetValue = LMSGetValue;
    this.LMSCommit = LMSCommit;
    this.LMSFinish = LMSFinish;
    this.LMSGetLastError = LMSGetLastError;
    this.LMSGetErrorString = LMSGetErrorString;
}

    function LMSInitialize(value)
    {        
        //alert("LMSInitialize:" + value);
        var reCode = "";
        enterLMSAjax("INIT","DoType=INIT&courseID=<%=courseID%>");
        return true;
    }

    function LMSSetValue(name, value)
    {
        //alert("LMSFrame,LMSSetValue:" + name + ":" + value);
        //enterLMSAjax("SET",value);
        
        switch(name)
        {
            case "cmi.core.student_id":
                buttonform.studentID.value = value;
                break;
            case "cmi.core.student_name":
                buttonform.studentName.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.runStatus.value != "completed"){
                  buttonform.runStatus.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.totalTime.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; 
        }  
        LMSCommit(value);
        return "";

    }

    function LMSGetValue(name)
    {
        //alert("LMSGetValue:" + name);        
        var reCode="";
        //reCode = enterLMSAjax("GET","");
        
        switch(name)
        {
            case "cmi.core.student_id":
                return buttonform.studentID.value;
                break;
            case "cmi.core.student_name":
                return buttonform.studentName.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.runStatus.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.totalTime.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;
    }

    function LMSCommit(value)
    {        
        //alert("LMSCommit:" + value);
        var reCode="";
        var param = "DoType=COMM&courseID="+ buttonform.courseID.value;
        param += "&lessonMode=" + buttonform.lessonMode.value;
        param += "&runStatus=" + buttonform.runStatus.value;
        param += "&starttime=" + buttonform.StartTime.value;
        param += "&scoLocation=" + buttonform.scoLocation.value; 
        param += "&score=" + buttonform.score.value;
        param += "&LessonExit=" + buttonform.LessonExit.value;
        param += "&Entry=" + buttonform.Entry.value;
        param += "&sessionTime=" + buttonform.sessionTime.value;
        param += "&SuspendData=" + buttonform.SuspendData.value;
        //param += "&LastSCOID=" + buttonform.LastSCOID.value;

        enterLMSAjax("COMM",param);
        return reCode;
    }

    function LMSFinish(value)
    {        
        //alert("LMSFinish:" + value);
        var reCode="";
        reCode = LMSCommit(value);
        //changeSCOContent();
        return reCode;
    }

    //通过ajax获得服务器当前时间
    function GetServerTime() {
        var start = "";
        start = enterLMSAjax("TIME","");
        return start;
    }
    
    function LMSGetLastError()
    {
        var reCode = "0";
        //reCode = enterLMSAjax("LastError","");
        return reCode;
    }
    
    function LMSGetErrorString(value)
    {
        var reCode = "";
        //reCode = enterLMSAjax("ErrorString",value);
        return reCode;
    }       

    function enterLMSAjax(p_dotype,p_value)
    {
        //var DataToSend = "TaskName="+p_name+"&TaskValue="+p_value+"&DoType="+p_dotype; 
        var xmlhttp;
        var reCode;
        if (window.XMLHttpRequest)
        {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        }
        else
        {// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                reCode = xmlhttp.responseText;
                if(reCode.indexOf("<INIT>")>=0){ accessInfo(reCode); }
            }
        }
        //xmlhttp.open("POST","ajaxScoData.jsp?TaskName="+p_name+"&TaskValue="+p_value+"&DoType="+p_dotype,true);
        xmlhttp.open("POST","ajaxScoData.jsp",true);
        xmlhttp.setRequestHeader( "Content-Type","application/x-www-form-urlencoded"); 
        xmlhttp.send(p_value);
    }

function doConfirm(){
    if( confirm("现在退出学习记录将不能保存.  确认退出吗?") ){
       window.parent.frames[4].document.location.href = "LMSMenu.jsp";
    }else{
    }
}

function closeWin(){
 //alert("You have closed the window.22222");
 //parent.opener.location.reload();
}
</script>
</head>

<body onload="init();" onUnLoad="LMSCommit('')">

<!--  For MS IE Use the Java 1.3 JRE Plug-in instead of the Browser's JVM
      Netscape 4.x can't use the plug-in because it's liveconnect doesn't work with the Plug-in
-->
<form name="buttonform">
    <input type="hidden" name="control" value="" />            
    <input type="hidden" name="courseID" value="<%=courseID%>" />
    <input type="hidden" name="StartTime" value="<%=util.getTime( ":")%>" />
    <input type="hidden" name="studentID" value="<%=OperCode%>" />
    <input type="hidden" name="LastSCOID" value="" />
    <input type="hidden" name="scoLocation" value="" />
    <input type="hidden" name="Credit" value="" />
    <input type="hidden" name="runStatus" value="" />
    <input type="hidden" name="Entry" value="" />
    <input type="hidden" name="score" value="" />
    <input type="hidden" name="totalTime" value="" />
    <input type="hidden" name="LessonExit" value="" />
    <input type="hidden" name="sessionTime" value="" />
    <input type="hidden" name="studentName" value="<%=OperName%>" />
    <input type="hidden" name="lessonMode" value="" />
    <input type="hidden" name="SuspendData" value="" />
<!--/NOLAYER-->

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多