Change the status of the CheckBox on restart based on LocalStorage

Mar 29, 2024

Hello!

There is a task to make sure that the progress between sessions is saved in localStorage. Specifically, the CheckBox states (Normal/Selected).

1. Using JavaScript, I made it so that when clicking on the CheckBox, information about its status was added to localStorage (true) and to the global variable Storyline (true).

2. When restarting the browser and opening the slide in a new session, JavaScript checks for localStorage, and if there is = true, then the global variable Storyline also sets = true.

3. Next, a trigger is created to change the state to "Selected" if the global variable Storyline = true, but this does not happen.

Please tell me, what could be the matter? As I understand it, it is not provided to change the states when running through pure JavaScript.

P.S. In the example, only the first (red) CheckBox is added

Thanks.

5 Replies
Jürgen Schoenemeyer

your main problem

  • you need GetPlayer.SetVar() to access from javascript to the storyline variables

here is the fixed script for the start of the slide

var red   = localStorage.getItem("Red");
var green = localStorage.getItem("Green");
var blue  = localStorage.getItem("Blue");

var player = GetPlayer();

player.SetVar( "globalRed",   Boolean(red) );
player.SetVar( "globalGreen", Boolean(green) );
player.SetVar( "globalBlue",  Boolean(blue) );

https://360.articulate.com/review/content/f47b115f-340e-4ab9-b7dc-00074ebd62b7/review

 update: setVar -> SetVar

Sergey A

I knew I had to use GetPlayer(), but I still couldn't figure out how it works. Couldn't find detailed documentation from the developers)

When I click on the "review" link, everything works as it should, but if I download "localStorage-fix.story", open and run locally, then the checkboxes are not saved. The browser console reports errors.

Could this be due to the fact that I have a stripped-down version of Storyline 3? You have more built-in default variables in the source, for example.