Here’s an example of hiding branches in Rise.
While the solution above work, there’s a caveat: since some of the user does not see all branches, Rise will send completion to the LMS, even if you go all the way to the end. Someone asked me if it’s possible to send completion in Rise right after launch, without having to scroll through all pages properly. Here’s something you can try until this feature is implemented:
TEST SOLUTION 1
- Create a course and set it to full completion (not quiz)
- Export the course
- Unzip the exported course
- Find the index.html file in the scormcontent folder
5. Add the following line after <script src=”lib/main.bundle.js”></script> at the bottom:
<script> setTimeout(function(){ var SD = window.parent; SD.SetReachedEnd(); SD.CommitData(); }, 3000);</script>
It should go before the </body> tag.
6. Zip it again and try it in the LMS.
This is a test. In theory, 3 seconds after launching, it sends the completed status. The 3000 is in millisecond, you can change. The result may depend on your LMS. It’s not sending a score or anything. Just completion.
Now, the reason it’s delayed for 3 seconds (which you can change) is because it takes time to fully load the page. If the page is not loaded yet, and you call this too soon, it may not work.
SOLUTION 2
The previous solution is good for testing. However, it may not work properly if the page loads takes longer. The proper way of doing this would be triggering completion not based on delayed time, but when the page is actually loaded, automatically.
If you’re using jQuery, you would need to add the following before the </body> tag (remove what you added in SOLUTION 1 first, this is a different approach)
<script src=”jquery-3.1.1.min.js”></script>
$( document ).ready(function() {
var SD = window.parent;
SD.SetReachedEnd();
SD.CommitData();
});
AND you need to copy the jquery-3.1.1.min.js file into the same directory as the index.html is (if you’re using the hiding branch example above, the zip already has jQuery in it).
Like this:
You can get the jQuery file from here (it would work with older jQuery as well):
(pick the one with the same name as above: jquery-3.1.1.min.js)
If you’re not using jQuery, you can try JavaScript’s <body onload=”setCompletion()”>
In this case, you would create a function:
<script>
function setCompletion()
{
var SD = window.parent;
SD.SetReachedEnd();
SD.CommitData();
}
</script>
Warning: the “completion indicator” in Rise would not move to 100%. So, you would need to let the users know that it is completed at launch, not matter what the Rise completion indicates.
Leave a Comment