Captivate Javascript检测LMS活动已完成

Captivate Javascript检测LMS活动已完成,javascript,moodle,scorm,Javascript,Moodle,Scorm,我有一个Captivate 8项目,它有一个包含大量Javascript的web对象 web对象通过Captivates scorm驱动程序向Moodle LMS发送数据。Captivate web对象将在窗口或选项卡中打开(取决于浏览器) 这通常是有效的,但是当活动在Moodle窗口中关闭时,web对象不知道发生了这种情况,并且web对象窗口/选项卡保持打开状态 我需要从LMS中获取一个事件,该学生已通过Captivate或Scorm驱动程序Captivate使用(Rustici)“退出活动”

我有一个Captivate 8项目,它有一个包含大量Javascript的web对象

web对象通过Captivates scorm驱动程序向Moodle LMS发送数据。Captivate web对象将在窗口或选项卡中打开(取决于浏览器)

这通常是有效的,但是当活动在Moodle窗口中关闭时,web对象不知道发生了这种情况,并且web对象窗口/选项卡保持打开状态

我需要从LMS中获取一个事件,该学生已通过Captivate或Scorm驱动程序Captivate使用(Rustici)“退出活动”。 或者其他的一些改变的方法

我在Captivate Javascript API或Rustici Scorm驱动程序文档中找不到任何明显的内容。 似乎有些事情应该是显而易见的


有人已经这样做了吗?

我记得这个问题,但请记住,这有几年的时间。基本上,您可以收听卸载、onbeforeunload等事件,以尝试捕获内容被告知自行关闭的事实

这使您有机会调用自己的内部退出方法,这样可以避免学生的尝试

您可以在这里看到SCOBot内容API是如何执行的-


GL

我想我需要做的就是检查Scorm驱动程序是否可用。驱动程序是由Captivate加载的,如果我的javascript在它自己的窗口中运行,当Moodle关闭Captivate内容时,它应该会看到驱动程序运行(变得未定义)。然后我就可以关上窗户了。我星期一试试看!从技术上讲,如果您的行为处于LMS级别,那么如果内容正确执行其工作,您将收到终止呼叫。情况并非总是如此,因此需要更多的状态来确认我们有一个飞行中会话,并请求一个新会话。在这一点上,我启动一个5-10秒的窗口,让内容有时间自行退出,或者在过期时强制退出。在Captivate JavaScript API文档中,我看不到任何类似于用户终止或关闭内容的事件。Rustici Scorm驱动程序也是如此。从我可以看出,如果Scorm驱动程序突然消失,这意味着Captivate内容已经关闭。