Open in iFrame (vs separate window), Exit/Close exits LMS, and "No HTTP Support"

carlfink
carlfink Community Member Posts: 947 ♦ Idol ♦
Hello. Our longstanding LMS is Success Factors (formerly Plateau). We have always had courses launch in a separate window from the LMS itself. However, we have now been asked (for certain courses) to keep the courses in the same window, in an iFrame (which is the only method Success Factors appears to support) because the secured testing computers we'll be running on block all popups.

We can launch the course fine, and it runs, but when an Exit/Close Action is triggered, the LMS window closes--it's the only window open. This is bad because these are multipart courses with multiple content items, and the course is closing after the first one.

I haven't tested this, but: has anyone tried using JavaScript? I'm thinking

<pre class="default prettyprint prettyprinted"><span class="pln">frameElement</span><span class="pun">.</span><span class="pln">parentNode</span><span class="pun">.</span><span class="pln">removeChild</span><span class="pun">(</span><span class="pln">frameElement</span><span class="pun">)</span>
might substitute for the Exit/Close Action. Anyone?

The other problem: every page in the Lectora course that loads displays a message box: "No HTTP Support". If I close that, the pages all work normally.

Browser is Internet Explorer 11. The "No HTTP Support" message does NOT appear in Chrome, but our approved browser is IE. Lectora version 16.1. (Can't upgrade to 17 at this time because this version is validated for the task.)

Thanks for any help.

Comments

  • mallow76
    mallow76 Community Member Posts: 123
    Just checking - what publish settings have you used in Lectora? Is the checkbox for 'course launches in a separate window' unchecked? And is there a setting in the LMS that controls where the course opens? Is that set to the correct option? If these things are as they should be then the scorm finish command that is called when the exit button is closed should return you to the LMS and not close the browser window.
  • carlfink
    carlfink Community Member Posts: 947 ♦ Idol ♦
    Pardon the junk that was inexplicably posted as my JavaScript above. I couldn't correct it, because for some reason the Trivantis forum software requires me to upload two files to edit my content? I can't upload the course because it is proprietary.

    Publish settings: Launch course in separate dindow from the LMS is not checked.  AICC, not SCORM. (Plateau/Success Factors doesn't fully support any of the APIs, but they recommended we use AICC over SCORM.) The iFrame that the LMS creates has a Close button (red X) which does work right--I'm going to copy the JavaScript from that, and see if I can trigger it from within the course. If so I'm good.
  • carlfink
    carlfink Community Member Posts: 947 ♦ Idol ♦
    "Window", dammit, not "dindow".

    For new weirdness, now exiting the module is causing it to reload (back to the first page) rather than closing the window. I still don't know why, or whether this is an LMS issue (now). Odd.

    Any hints about "No HTTP Support" in a messageBox?
  • mallow76
    mallow76 Community Member Posts: 123
    Is the LMS an https site and the link used in the iframe http? if they are different it can be an issue.
  • carlfink
    carlfink Community Member Posts: 947 ♦ Idol ♦
    Is the LMS an https site and the link used in the iframe http? if they are different it can be an issue.
    That was kind of what I had deduced, except I don't know what "the link used in the iFrame" is here. The course works fine in a separate window. Do I have to change every, I don't know, graphic URL on every page to be https to avoid this error?

     

    Thanks, mallow. Appreciate the help.
  • mallow76
    mallow76 Community Member Posts: 123
    if you view the page source for the LMS page where the course is presented you should be able to see where the iframe is linking from. You definitely shouldn't need to be doing anything with any URLs within the course pages.
  • carlfink
    carlfink Community Member Posts: 947 ♦ Idol ♦
    Having just run through a different course in the test environment: the "No HTTP Support" message appears only on two of the 20 or so pages. Weird.
  • carlfink
    carlfink Community Member Posts: 947 ♦ Idol ♦
    Update: The "no HTTP support" message is sent by trivantis-titlemanager-aicc.js. Here's the relevant code:
     var httpReq = getHTTP( dest, 'POST', props.str );
    if( httpReq.status != 200 )
    {
    trivAlert( "HTTPCOMMERR", "trivantis-titlemgr-aicc.js", 'no HTTP support ' + httpReq.statusText );
    return;
    }
    I am absolutely NOT familiar with this JavaScript file. props is a variable of type TrivStr, but that class is not defined here--presumably it's defined in another of the many Trivantis JS files?

    So if an AICC message transaction fails with HTTP status 200, this unhelpful error appears? Note that don't actually see a "statusText" in the resulting dialog, just "No HTTP support".

    At least some AICC messages do get through, because my course was marked as complete.

    I'd love to use debug mode but because the secure environment blocks popups, I dunno if it will work. I'm going to try it.

    Of course, we can also try SCORM if necessary but we're hoping to avoid that.
  • carlfink
    carlfink Community Member Posts: 947 ♦ Idol ♦
    Looking at that code this morning with fresh eyes I see the "not equal to" (!=) in the if statement. OK, that makes more sense: the message appears if the status is not "OK" (200).

    It looks as if our LMS may just be non-AICC-compliant and not be returning a proper 200 for all transactions. The actual AICC data does seem to get saved to the server. This particular module stores only a pass/fail status and a test score, and those are being recorded. Maybe I'll hack the JS file to not display that message and call it a day.
  • mallow76
    mallow76 Community Member Posts: 123
    I am pretty sure that you can set Lectora to not display any error messages at all. it's done by editing a 'true' to a 'false' (or vice-versa) in one of the published output files. Sorry - i am not on a machine with Lectora just now or i could check. If your course is working as expected otherwise then this might well be a reasonable solution.
  • klaatu
    klaatu Community Member Posts: 988
    Try publishing without seamless play.
  • carlfink
    carlfink Community Member Posts: 947 ♦ Idol ♦
    Thanks, Darrel, but I'm using version 16, which doesn't even have Seamless Play.
  • carlfink
    carlfink Community Member Posts: 947 ♦ Idol ♦
    In the end I edited the JavaScript file to disable that error, and instead of an Exit button in the course itself I just direct the learner to click the LMS's Close button, with a big honking arrow pointing to it so they can't miss it.

    Not elegant but it works.

    I did have to put a dummy page that is never navigated to in the course, with a Close/Exit action, because Lectora won't let me publish otherwise. It is not used and has no effect. (I manually run LMSCommit() a couple of times to be sure results are saved before exiting.)
  • carlfink
    carlfink Community Member Posts: 947 ♦ Idol ♦
    Just a quick update: Trivantis is going to revisit the JS code I quote above, and enhance HTTP error handling in general. See my recent post in the Suggestions forum.