SCORM - небольшой курс, который измеряет начало и конец - PullRequest
0 голосов
/ 16 марта 2012

У меня проблема с очень простым курсом, построенным на HTML с использованием SCORM.

Единственное, с чем я хотел бы связаться со SCORM, - это если курс был начат doLMSInitialize () и если он был закончен doLMSFinish () . Я использую APIWrapper.js из http://scorm12.com/.

У меня есть три 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
    

Но когда я выхожу из курса на первой странице, LMS говорит, что я закончил курс. Я не знаю, что это произойдет, пока я не достиг последней страницы.

Если это поможет, вы можете найти мои файлы вместе с моим imsmanifest.xml здесь: http://dl.dropbox.com/u/775928/scorm12-course.zip

1 Ответ

1 голос
/ 18 марта 2012

API-интерфейс SCORM может быть инициализирован только один раз и должен оставаться на месте в течение всего курса.Переход от index.html к page-2.html завершит соединение API, которое было инициализировано в index.html.Решение состоит в том, чтобы использовать набор фреймов или iframe, при этом соединение API поддерживается в родительском фрейме.

Рассматривая ваш пример, я бы использовал следующую настройку:

  • index.html - должен содержать весь javascript (включая jscript/APIWrapper.js) и фрейм для загрузки страниц с контентом.Эта страница вызывает doLMSInitialize onload.
  • page-1.html - загружает в iframe index.html.Содержит любой контент на странице 1. Не загружает ли jscript/APIWrapper.js.
  • page-2.html - Загружает в iframe index.html.Содержит любой контент на странице 2. Не загружает ли jscript/APIWrapper.js.
  • end.html - Загружает в iframe index.html.Вызывает doLMSFinish в родительском фрейме (index.html):

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