【问题标题】:SCORM 1.0 / 1.2 LMSFinish not callingSCORM 1.0 / 1.2 LMSFinish 不调用
【发布时间】:2016-01-29 10:59:32
【问题描述】:

我在使用 HTML5 SCORM 包时遇到了一些问题。

TL;DR; LMSFinish() 没有被调用。 SCORM 中的 x.prototype.terminate() 也没有被调用,这让我相信这个包有问题。

LMSFinish() 应该在单击退出按钮时调用(和/或在窗口关闭时)。然而,LMSFinish() 中的 console.log() 和断点表明它没有被调用。

当窗口打开时 LMSInitialise 很好,但是对于 LMSFinish 在检查 SCORM 内的源并在 window.unload() 函数中放置断点后,我可以看到它只是退出的一部分。

window.unload 调用 closeLms(),而后者又运行经过混淆的 x.prototype.terminate()。这个终止函数似乎在调用一些其他函数之前进行布尔检查,最终导致调用 LMSFinish()。它永远不会走那么远。 x.prototype.terminate() 中的布尔检查始终为假。如果我在控制台中将其设置为 true,则其他一些属性将不存在,并且生成的函数调用将失败并出现错误。

有人知道为什么 SCORM 无法运行 LMSFinish() 吗?测试 SCORM 包只有 3 张幻灯片,没有交互。

编辑:唯一编写的自定义 javascript 是 SCORM API 的钩子(LMSInitialise、LMSFinish 等)这些是从 SCORM 包中的 javascript 调用的,由用户决定用来创建它的任何应用程序生成. (口齿清晰,着迷等)

【问题讨论】:

  • 正文卸载事件的热门问题。确保改为使用窗口。我通常为 window.unload 和 onbeforeunload 设置监听器。
  • 您是在使用自定义 JavaScript 来处理 SCORM,还是使用来自 3rd 方工具的代码?从您在下面对 Andrew 的评论中,您提到了 Articulate 和 Captivate,但您的问题写得好像您自己在编写 JS。如果没有清晰的图片(和实际代码),就很难提供有用的反馈。
  • 抱歉没有完全清楚,我已经编辑了帖子以包含更多信息。我无法提供导致问题的软件包。我只能假设应用程序 (Adobe Captivate) 正在使用阻止 LMSFinish 代码执行的设置生成包。或类似的规定。我希望有人以前见过这个。

标签: javascript api scorm scorm1.2


【解决方案1】:

根据您的浏览器和其他一些变量,附加到 window.unload 的代码并不总是运行。

更好的方法是定期保存数据并设置一个保存和退出按钮,如果他们想保存他们的工作,您可以鼓励学习者点击该按钮。

您也可以查看 window.onbeforeunload。

【讨论】:

  • 谢谢。然而,卸载代码是 SCORM 包的一部分。它是 Articulate 或 Adob​​e Captivate 在您导出时创建的。当期望非技术精通的客户创建它们时,我无法控制它。 另外,卸载功能正在运行,SCORM js 中的其他东西正在停止执行。不是通过错误,而是一个虚假的变量。可能与设置有关...?
  • 它可能会超时吗?也许观察网络活动并手动点击 LMSCommit 等,看看是否有明显的关闭通常隐藏的东西?
  • 那么它是一个故事包还是一个迷人的包?可以分享一下吗?
  • @AndrewDownes 它是迷人的。我不能分享这个包裹,因为它属于我们的一位客户。有几个客户在他们的包中报告了这个问题,但由于我们编写的唯一代码是 SCORM API LMSFinish(),其余代码由 Captivate 生成,我认为是 Captivate 导致了问题。
【解决方案2】:

我最终想通了。对于任何可能遇到 SCORM 行为不符合预期的问题的人。

在我的特殊情况下,LMSSetValue() 和 LMSGetValue() 只返回项目中需要的东西。事实证明,无论您是否使用它,它们都需要处理 SCORM 尝试设置和获取的每个值。

我简单地创建了一个对象作为 window.API{} 的属性,并确保在 LMSSetValue() 上以键值对的形式为其分配了所有值,然后这些值就可以在 LMSGetValue() 中检索。

【讨论】:

    猜你喜欢
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多