IFRAMES 是否仍然是跟踪 SCORM SCO 中的必需品

Are IFRAMES still a necessity in a tracking SCORM SCO

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

这个答案假定问题的意思是:'Do iframes have to be used in the complete solution including the LMS and content?'

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

  • 弹出窗口,在许多浏览器中默认被阻止。
  • 框架集,'obsolete' 现在在 HTML5 中不再受支持。
  • Iframes,正如您所提到的,它可能会导致响应问题。请参阅 this stack overflow question 以获取一些建议。

SCORM 的继任者,Tin Can API 使用 HTTP 请求而不是 JavaScript API。使用 Tin Can,您可以在新的 window、相同的 window、另一台设备或您喜欢的任何设备上启动内容。不需要弹出窗口和框架。

如果问题是'Do I have to use iframes in my content?',答案是否定的。

无需使用 IFRAMES 或 OBJECTS 来包含您的 SCORM 内容。 API 就是 Javascript,只要它全部包含在页面中,一切都会正常(SCORM 一致性要求基本上要求您查看自己的框架,然后是任何父框架,然后是任何父框架window)...

也就是说 - 无论您使用的是什么平台,都需要允许您直接将内容放在那里,并且最简单地默认将其放入某种框架/window。

正如其他张贴者所提到的,从技术上讲,框架从来都不是必需的,但它们是迄今为止确保 SCORM API 在多个页面之间导航时保​​持可用的最简单和最可靠的方法。

如果您不使用 iframe(在父框架中保持 API 连接),并且用户导航到您课程的第二页,则会断开 API 连接课程将无法再与 LMS 通信。

父框架处理与 LMS 的通信,而子框架包含课程内容。子框架(通常是 iframe)可以最大化以适合整个视口,使父框架不可见并使子框架能够 feel/behave 作为单个 HTML 页面。

RE: 响应式布局,iframe 不是创建响应式布局的障碍。我们一直这样做。将 iframe 设置为占据父框架的 100% width/height(溢出:在父框架上隐藏,溢出:在子框架上自动显示,以便滚动条按需要显示)。此时,您在 iframe 的 HTML 中使用的任何响应代码都应该像不在 iframe 中一样工作。例如,如果您在视口很小(例如平板电脑或 phone)时使用媒体查询来堆叠元素,则媒体查询应该会很好地触发。 SCORM 对 CSS 没有影响,如果管理得当,iframe 对您的 CSS/design 的影响可以忽略不计。

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