How to force the LMS to call index_lms_html5.html?

We want ONLY the HTML5 version of a particular course to load in the LMS (Cornerstone OnDemand). We are all good on how to output to HTML5 and we have tested the file locally. When we publish from Storyline 2 update 7 we get both the SWF and the HTML5 files in the output. I am guessing there are dependencies.

It seems, however, that we're going to have to do some manual editing of the manifest file and possibly some other files in the output in order to get the LMS to launch ONLY the HTML5. Before I try brutal hacks like removing the index_lms.html file or manual trial and error edits—does anyone know how to do this already?

UPDATE: One of my IDs has figured out how to work around the LMS and browser hiccups and force HTML5 to load in any compatible browser.
Not sure if this link will take you directly to his post (with screenshots) but if not, it's on page 3 of this thread. Thanks a million @BrettBerish.

https://community.articulate.com/discussions/articulate-storyline/how-to-force-the-lms-to-call-index_lms_html5-html?page=3#

Thanks to Phil, Steve, Mike and Ashley.

97 Replies
Dave Howard

Phil,

SCORMcloud definitely loaded the HTML5 version and the URL was the index_lms.html file. And you accomplished that with this fix?

"delete Story.html, duplicate Story_html5.html and rename duplicate to story.html"

What publishing settings did you use in Storyline for SCORM reporting and tracking?

Steve Flowers

Odd that it starts loading the html5 package but hangs up on the spinning loader. Wonder if Cornerstone is doing something funny with their launcher that's messing up the load.

In addition to renaming the story.html file. A couple of other ways to tackle the problem that could be worth trying. Edit the line in index_lms.html that sets strContentLocation = "story.html"; to strContentLocation = "story_html5.html";   

If that works, you should be able to modify the publish template in the application directory to do this permanently every single publish and just put it out of mind. No post-publish-surgery required. If this doesn't work, can you look at the console errors to see what pops up?

 

<!--/* Copyright ? 2003-2011 Rustici Software, LLC  All Rights Reserved. www.scorm.com - See LICENSE.txt for usage restrictions */-->
<HTML>
 <HEAD>
  <TITLE>Untitled1</TITLE>
  
  <script>
   var g_biOS = (navigator.userAgent.indexOf("AppleWebKit/") > -1 && navigator.userAgent.indexOf("Mobile/") > -1);
   var g_bAndroid = (navigator.userAgent.indexOf("Android") > -1);
   if ((g_biOS || g_bAndroid) && true)
   {
    var strLocation = location.href.replace("index_lms", "index_lms_html5");
    location.replace(strLocation);
   }
  </script>
  
  <script src="lms/APIConstants.js" type="text/javascript" charset="utf-8"></script>
  <script src="lms/Configuration.js" type="text/javascript" charset="utf-8"></script>
  <script src="lms/UtilityFunctions.js" type="text/javascript" charset="utf-8"></script>
  <script src="lms/SCORM2004Functions.js" type="text/javascript" charset="utf-8"></script>
  <script src="lms/SCORMFunctions.js" type="text/javascript" charset="utf-8"></script>
  <script src="lms/AICCFunctions.js" type="text/javascript" charset="utf-8"></script>
  <script src="lms/NONEFunctions.js" type="text/javascript" charset="utf-8"></script>
  <script src="lms/LMSAPI.js" type="text/javascript" charset="utf-8"></script>
  <script src="lms/API.js" type="text/javascript" charset="utf-8"></script>

  <script language="JavaScript1.2">
  
  strContentLocation = "story_html5.html";  //Put the link to the start of the content here.
  //strContentLocation = "TestAllFunctions.htm";
  
  function LoadContent(){
   window.scormdriver_content.document.location.href = strContentLocation;
  }
  </script>
 </HEAD>
 <frameset rows="100%,0%,0%,0%" onload="Start()" border="0" onbeforeunload="Unload()" onunload="Unload()">
  <frame name="scormdriver_content" src="lms/blank.html" scrolling="false">
  <frame name="AICCComm" src="lms/AICCComm.html">
  <frame name="rusticisoftware_aicc_results" src="lms/blank.html">
  <frame name="NothingFrame" src="lms/blank.html">
 </frameset>
 <noframes>
  Your browser must be able to view frames for this content to display.
 </noframes>
</HTML>

Steve Flowers

If that last one works (editing the line in index_lms.html) then here's where you can make it permanent:

1) Navigate to your install directory's content folder. On my machine it's C:\Program Files\Articulate\Articulate Storyline 2\Content.

2) Copy and paste the line that reads strContentLocation = "__PLAYER_HTM__"; //Put the link to the start of the content here. so that there are two lines. Comment out the first line so you can restore it if necessary.

3) Set the new copied line to read strContentLocation = "story_html5.html"; 

4) Save the file.

This should force the publish to output HTML5 launch every single time. Flash will never be queued up to load in the SCORM launch.

<!--/* Copyright © 2003-2011 Rustici Software, LLC  All Rights Reserved. www.scorm.com - See LICENSE.txt for usage restrictions */-->
<HTML>
 <HEAD>
  <TITLE>_TITLE_</TITLE>
  
  <script>
   var g_biOS = (navigator.userAgent.indexOf("AppleWebKit/") > -1 && navigator.userAgent.indexOf("Mobile/") > -1);
   var g_bAndroid = (navigator.userAgent.indexOf("Android") > -1);
   if ((g_biOS || g_bAndroid) && __USE_HTML5__)
   {
    var strLocation = location.href.replace("index_lms", "index_lms_html5");
    location.replace(strLocation);
   }
  </script>
  
  <script src="lms/APIConstants.js" type="text/javascript" charset="utf-8"></script>
  <script src="lms/Configuration.js" type="text/javascript" charset="utf-8"></script>
  <script src="lms/UtilityFunctions.js" type="text/javascript" charset="utf-8"></script>
  <script src="lms/SCORM2004Functions.js" type="text/javascript" charset="utf-8"></script>
  <script src="lms/SCORMFunctions.js" type="text/javascript" charset="utf-8"></script>
  <script src="lms/AICCFunctions.js" type="text/javascript" charset="utf-8"></script>
  <script src="lms/NONEFunctions.js" type="text/javascript" charset="utf-8"></script>
  <script src="lms/LMSAPI.js" type="text/javascript" charset="utf-8"></script>
  <script src="lms/API.js" type="text/javascript" charset="utf-8"></script>

  <script language="JavaScript1.2">
  
  //strContentLocation = "__PLAYER_HTM__";  //COMMENTED OUT

  strContentLocation = "story_html5.html";
  //strContentLocation = "TestAllFunctions.htm";
  
  function LoadContent(){
   window.scormdriver_content.document.location.href = strContentLocation;
  }
  </script>
 </HEAD>
 <frameset rows="100%,0%,0%,0%" onload="Start()" border="0" onbeforeunload="Unload()" onunload="Unload()">
  <frame name="scormdriver_content" src="lms/blank.html" scrolling="__SCROLLING__">
  <frame name="AICCComm" src="lms/AICCComm.html">
  <frame name="rusticisoftware_aicc_results" src="lms/blank.html">
  <frame name="NothingFrame" src="lms/blank.html">
 </frameset>
 <noframes>
  Your browser must be able to view frames for this content to display.
 </noframes>
</HTML>

Steve Flowers

Shouldn't make a difference. Since it's not loading, not getting that far. Would still try the substitution methods above to see if the behavior changes. Since it is currently loading the story_html5 file after loading the story.html file on CSOD, it should work directly connecting to the story_html5 file or renaming the story_html5.html file to story.html.

No idea why the index_lms_html5 fix isn't working.  Wish CSOD had a public test site.

Phil Mayor

This is really odd, it, I even signed up to a trial account to test this. It works fine in Safari, Firefox and Chrome on Mac and PC but IE refuses to open it, my first thought was that it wasn't a supported browser but it is loading nothing at all and my file had nothing in that IE should choke on.

I tried everything I could, but then i tried disabling flash on Internet explorer and adding a course without any modifications and this refused to load the HTML5 in Cornerstone, enabling flash and worked as expected.  I wonder if the Cornerstone Player/Launcher window used for IE is different to the other browsers and is expecting flash content? I could not get HTML5 content to play in IE in Cornerstone at all.

Brian Allen
Steve Flowers

Could be a setting in the admin configuration to get around this.

I was doing some testing on this earlier this week, unfortunately Cornerstone isn't alone in this issue... I'm working with SumTotal and I can get a little further than Dave but still don't get a functional course.

There is an admin setting in SumT that supposedly helps IE play HTML5 content, but it isn't working apparently.

The SumT content player opens in IE by default in quirks mode, basically setting the browser to IE6.  There is a setting that can/should be selected for HTML5 SCORM content that supposedly keeps modern IE browsers from being forced into quirks mode and allow the content to run in native mode, but there is still something bad wrong with HTML5 content.

And it's not just IE, I tested in Chrome with the exact same results.

Thankfully the HTML5 content *DOES* play well in mobile browsers on iOS devices.

Here's the admin setting in SumT...