Re: [elearning tech & dev] How to check if Scorm is initialize on subsequent html pages

404 views
Skip to first unread message

Philip Hutchison

unread,
Aug 27, 2012, 2:11:34 AM8/27/12
to elearning-technolo...@googlegroups.com
Hi Hammy

For HTML-based courses (as opposed to Flash), SCORM requires the use of a frameset or iframe.  The SCO is initialized in the parent frame when the course loads. Since the parent frame remains static throughout the entire course, there is no need to re-initialize the SCORM connection. In fact, initializing more than once is a no-no and can kill your course.

The course content is then displayed through a series of child frames or iframes, which can communicate to the parent frame via JavaScript.

For example:

index.html  >  parent frame, initializes and manages SCORM connection.
content01.html  > loads via iframe into index.html
content02.html  > loads via iframe into index.html
content03.html  > loads via iframe into index.html
etc.

Hope that helps
- philip


On Sun, Aug 26, 2012 at 3:36 PM, Hammy <workmo...@gmail.com> wrote:
Hello,
I am very new to SCORM (first project) and I understand everything I have read so far.  I am good with initializing the course in an index page.  My site is composed of 3 separate sections and a finish page.  Using Pipewerks documentation and samples, I understand conceptually that I need to check variables from the LMS using pipewerks.SCORM.get (scorm.get as a shortcut) and react accordingly, but I am not sure on the top of each html page whether or not I am using scorm.init().  Other APIs I have used for other purposes have the init function initialize if first time (returning true) and simply return true if already initialized.  Any guidence you may have would be greatly appreciated.  Thanks in advance.

- Hammy

--
You received this message because you are subscribed to the Google Groups "eLearning Technology and Development" group.
To view this discussion on the web visit https://groups.google.com/d/msg/elearning-technology-and-development/-/rCt5gurwdIoJ.
To post to this group, send email to elearning-technolo...@googlegroups.com.
To unsubscribe from this group, send email to elearning-technology-and...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/elearning-technology-and-development?hl=en.

Hammy

unread,
Aug 27, 2012, 9:35:09 AM8/27/12
to elearning-technolo...@googlegroups.com
LIGHTBULB - Thank you very much, this could have been very painful without that little tidbit.  Thank you again.


On Monday, August 27, 2012 2:11:34 AM UTC-4, Philip Hutchison wrote:
Hi Hammy

For HTML-based courses (as opposed to Flash), SCORM requires the use of a frameset or iframe.  The SCO is initialized in the parent frame when the course loads. Since the parent frame remains static throughout the entire course, there is no need to re-initialize the SCORM connection. In fact, initializing more than once is a no-no and can kill your course.

The course content is then displayed through a series of child frames or iframes, which can communicate to the parent frame via JavaScript.

For example:

index.html  >  parent frame, initializes and manages SCORM connection.
content01.html  > loads via iframe into index.html
content02.html  > loads via iframe into index.html
content03.html  > loads via iframe into index.html
etc.

Hope that helps
- philip
On Sun, Aug 26, 2012 at 3:36 PM, Hammy <workmo...@gmail.com> wrote:
Hello,
I am very new to SCORM (first project) and I understand everything I have read so far.  I am good with initializing the course in an index page.  My site is composed of 3 separate sections and a finish page.  Using Pipewerks documentation and samples, I understand conceptually that I need to check variables from the LMS using pipewerks.SCORM.get (scorm.get as a shortcut) and react accordingly, but I am not sure on the top of each html page whether or not I am using scorm.init().  Other APIs I have used for other purposes have the init function initialize if first time (returning true) and simply return true if already initialized.  Any guidence you may have would be greatly appreciated.  Thanks in advance.

- Hammy

--
You received this message because you are subscribed to the Google Groups "eLearning Technology and Development" group.
To view this discussion on the web visit https://groups.google.com/d/msg/elearning-technology-and-development/-/rCt5gurwdIoJ.
To post to this group, send email to elearning-technology-and-devel...@googlegroups.com.
To unsubscribe from this group, send email to elearning-technology-and-development+unsubscribe@googlegroups.com.

John Campbell

unread,
Aug 27, 2012, 10:10:42 AM8/27/12
to elearning-technolo...@googlegroups.com
The key is to never re-initialize or double terminate.  You don't necessarily have to use frames, but it's certainly a nice way to organize things.  


take care,

jpc




To view this discussion on the web visit https://groups.google.com/d/msg/elearning-technology-and-development/-/-d7s3rMw1jUJ.

To post to this group, send email to elearning-technolo...@googlegroups.com.
To unsubscribe from this group, send email to elearning-technology-and...@googlegroups.com.

Philip Hutchison

unread,
Aug 29, 2012, 2:29:31 AM8/29/12
to elearning-technolo...@googlegroups.com
Hi John

You;ve piqued my curiosity. Can you provide an example that doesn't use frames or Flash? How is the API state maintained if the page reloads? The common reference docs (ADL, Ostyn, Rustici) all use frames.

Thanks
- philip

John Campbell

unread,
Aug 29, 2012, 6:24:36 AM8/29/12
to elearning-technolo...@googlegroups.com
I've seen it done two ways.  I was once handed a SCORM lesson that was just HTML pages.  Page 1 initialized.  Each page had a next button that reset location or location.href.  This didn't cause any issues with the LMS.  The final page called terminate on load.  It wasn't my favorite design, but worked.

Look at LSAL template 3 (and probably any multi page SCO in those templates).  It uses the same approach as above.

I've written quite a few courses that use divs instead of frames and load the content in via ajax or dynamically update the text using javascript.

Just saying that there are many ways to skin a cat.


take care,

jpc

Ryan Sorgnard

unread,
Sep 9, 2013, 4:16:12 PM9/9/13
to elearning-technolo...@googlegroups.com, j...@alumni.rice.edu
Another way to skin the cat is using XMLHttpRequest and loading a multi-step lesson in from an xml file instead of separate html pages.  This is the approach I'm building now and it's pretty clean.  The benefit is that I can update the interface using innerHTML so that the user thinks they are navigating inside a multi-page environment but everything is driven from one html page and 1 xml file.

-r

take care,

jpc





take care,

jpc




To post to this group, send email to elearning-technology-and-developm...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "eLearning Technology and Development" group.
To view this discussion on the web visit https://groups.google.com/d/msg/elearning-technology-and-development/-/-d7s3rMw1jUJ.

To post to this group, send email to elearning-technology-and-devel...@googlegroups.com.
To unsubscribe from this group, send email to elearning-technology-and-development+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/elearning-technology-and-development?hl=en.

--
You received this message because you are subscribed to the Google Groups "eLearning Technology and Development" group.
To post to this group, send email to elearning-technology-and-devel...@googlegroups.com.
To unsubscribe from this group, send email to elearning-technology-and-development+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/elearning-technology-and-development?hl=en.
Reply all
Reply to author
Forward
0 new messages