iFrame在跟踪SCORM SCO中仍然是必要的吗

iFrame在跟踪SCORM SCO中仍然是必要的吗,iframe,scorm,tin-can-api,Iframe,Scorm,Tin Can Api,当从html和javascript构建SCORM解决方案时,需要使用LMS进行跟踪,是仍然需要在IFRAME中包含所有页面,还是采用了其他方法?当尝试创建响应性页面时,在IFRAME中工作会遇到什么困难?此答案假设问题的意思是:“IFRAME是否必须用于包括LMS和内容在内的完整解决方案?” 请记住,SCORM现在是一个相当古老的规范,所以设计时没有考虑到现代世界。SCORM使用JavaScript API,需要在LMS窗口和内容之间建立父子关系。这意味着您可以选择: 弹出窗口,默认情况下在许

当从html和javascript构建SCORM解决方案时,需要使用LMS进行跟踪,是仍然需要在IFRAME中包含所有页面,还是采用了其他方法?当尝试创建响应性页面时,在IFRAME中工作会遇到什么困难?

此答案假设问题的意思是:“IFRAME是否必须用于包括LMS和内容在内的完整解决方案?”

请记住,SCORM现在是一个相当古老的规范,所以设计时没有考虑到现代世界。SCORM使用JavaScript API,需要在LMS窗口和内容之间建立父子关系。这意味着您可以选择:

  • 弹出窗口,默认情况下在许多浏览器中被阻止
  • 框架集是“过时的”,现在在HTML5中不再受支持
  • Iframes,正如您所提到的,它可能会导致响应性问题。请参阅以获取一些建议
SCORM的继承者使用HTTP请求而不是JavaScript API。使用Tin-Can,您可以在新窗口、同一窗口、其他设备或任何您喜欢的方式启动内容。不需要弹出窗口和框架


如果问题是“我必须在我的内容中使用iFrame吗?”,答案是否定的。

没有必要使用iFrame或对象来包含您的SCORM内容。API只是Javascript,只要它都包含在页面中,一切都会正常工作(SCORM一致性要求基本上要求您查看自己的框架,然后查看任何父框架,然后查看任何父窗口)


也就是说,无论您使用什么平台,都需要允许您直接将内容放在其中,并且默认情况下,最简单的方法是将其放入某种框架/窗口中。

正如其他海报所提到的,从技术上讲,框架是不需要的,但它们是迄今为止确保SCORM API在多个页面之间导航时保持可用的最简单、最可靠的方法

如果您不使用iframe(在父框架中维护API连接),并且用户导航到课程的第二页,它将中断API连接,课程将无法与LMS通信

父帧处理与LMS的通信,而子帧包含课程内容。子帧(通常是iframe)可以最大化以适应整个视口,从而使父帧不可见,并使子帧感觉/表现为单个HTML页面

回复:响应性布局,iFrame不是创建响应性布局的障碍。我们总是这样做。将iframe设置为占据父帧100%的宽度/高度(溢出:在父帧上隐藏,溢出:在子帧上自动,以便滚动条根据需要显示)。此时,您在iframe的HTML中使用的任何响应代码都应该与不在iframe中的代码一样工作。例如,如果在视口很小(例如平板电脑或手机)时使用媒体查询堆叠元素,则媒体查询应该可以正常启动。SCORM对CSS没有影响,如果管理得当,iframe对CSS/设计的影响可以忽略不计


iFrame是现代网站的重要组成部分,也是HTML5规范的一部分;对iFrame的支持在浏览器和设备中非常强大。不要让它吓到你。

我可以使用tincan api以SCORM 1.2 LMS为目标,从而利用http请求机制吗?不可以。LMS必须支持Tin Can。有很多方法可以将锡罐内容包装到SCORM包中,但是你遇到了同样的问题。这个问题是针对SCORM的,将锡罐放入其中会让事情变得混乱。是的,Tin-Can的设计就是为了避开这些东西,但它不能回答这个问题。你能告诉我一些在线的例子吗?它们在SCORM解决方案中不使用iFrame?我要举的例子是scorm高尔夫,它大量使用iFrame。我昨天发布的一个相关问题的答案是,在使用多个页面的情况下,iFrame是必要的“如果您使用多个页面,您将需要使用iFrame来防止意外终止API连接”。遗憾的是,我认为没有任何示例。API的问题是,只能有一个init/exit对-因此,如果内容在一个iframe中,那么一次只能允许存在一个iframe(相对容易解决,但怀疑是否有人这样做)。当它成为页面内容的一部分时,访问API只是一件事,所以问题并没有那么大。服务器通信是唯一没有通过旧API(即,锡罐的巨大变化)解决的问题,因此需要在其中提供。因此,在由多个html页面组成的解决方案中,任何页面中都没有iframe。。我可以利用SCORM 1.2的javascript库/包装器来公开单个SCORM API“实例”,每个页面都可以引用它吗?你可以这样做,但你仍然需要实际的SCORM API本身可用-我非常喜欢包装器,任何一个不太体面的人都会处理与API本身在同一个框架内的问题——因此只需确保包含平台的相关javascript文件。这个问题是问启动SCORM内容的LMS是否必须使用框架,还是内容本身必须使用框架?你有两个答案,每个问题的解释一个。问题是内容本身是否必须包装在SCO包中的iframe中。例如,在scorm高尔夫示例中,一个主页包含一个IFrame,所有其他页面都必须加载到其中。好的,在这种情况下,从SCO的角度来看@Rycochet的回答,您可以通过AJAX加载页面。所以模板系统,比如把手,击倒,角度和更多可以用来加载在您的布局,页面等。我的网站上的播放器使用这种方法。你的权利,尽管IFRAME方法已经过时了。