SCORM - 一个只测量开始和结束的小课程

时间:2012-03-16 16:52:13

标签: scorm

我在使用SCORM构建的非常简单的课程中遇到了问题。

我想与SCORM沟通的唯一方法是,课程是否已经开始 doLMSInitialize(),如果已经完成 doLMSFinish()。我正在使用http://scorm12.com/中的APIWrapper.js。

我有三个HTML文件:

  1. index.html,代码如下:

    <script language="text/javascript" src="jscript/APIWrapper.js"></script>
    </head>
    
    <BODY onLoad="doLMSInitialize();">
    
    <a href="page-2.html">Page 2</a>
    
  2. page-2.html,代码如下:

    <script language="text/javascript" src="jscript/APIWrapper.js"></script>
    </head>
    
    <BODY>
    
    <a href="end.html">End</a>
    
  3. end.html,代码如下:

    <script language="text/javascript" src="jscript/APIWrapper.js"></script>
    </head>
    
    <BODY onUnload="doLMSFinish()">
    
    COMPLETE
    
  4. 但是当我退出第一页的课程时,LMS说我已经完成了课程。在我到达最后一页之前,我不会发生这种情况。

    如果它有帮助你可以在我的imsmanifest.xml中找到我的文件:http://dl.dropbox.com/u/775928/scorm12-course.zip

1 个答案:

答案 0 :(得分:1)

SCORM API只能初始化一次,并且需要在课程期间保持不变。从index.html导航到page-2.html将结束已在index.html中初始化的API连接。解决方案是使用框架集或iframe,并在父框架内维护API连接。

看看你的例子,我将使用以下设置:

  • index.html - 应包含所有javascript(包括jscript/APIWrapper.js)和iframe以加载内容页面。此页面调用doLMSInitialize onload。
  • page-1.html - 在index.html的iframe中加载。包含第1页上的内容。加载jscript/APIWrapper.js
  • page-2.html - 在index.html的iframe中加载。包含第2页上的内容。加载jscript/APIWrapper.js
  • end.html - 在index.html的iframe中加载。在父框架(index.html)中调用doLMSFinish

    <script>
    window.onload = parent.doLMSFinish;
    </script>