Storyline 1: JavaScript Best Practices and Examples

Article Last Updated

This article applies to:

Looking for a different version of Storyline? Check out the JavaScript best practices and examples for Storyline 2, Storyline 3, and Storyline 360.

Storyline 1 supports JavaScript triggers for advanced interactions. (To learn more about triggers, see this tutorial.)

Best Practices

Although we don't provide support for JavaScript coding, these tips will help when you create JavaScript triggers in Storyline:

  • JavaScript triggers are supported in Flash and HTML5 published output. However, JavaScript isn't supported in the Articulate Mobile Player app. (For a full comparison of the different players, see this article.)
  • Use the player.GetVar method to retrieve the value of Storyline variables, and use the player.SetVar method to set the value of a Storyline variable. In other words, you can pull information from Storyline variables with player.GetVar and push information into Storyline variables with player.SetVar.
  • Don't include <script type="text/javascript"> in your code.
  • Each JavaScript trigger can have up to 32,767 characters of code.
  • You can't call JavaScript functions from one trigger in another trigger. However, you can call JavaScript functions within the same trigger.
  • If you'd like to include all your JavaScript functions in a separate JavaScript (.js) file, place your custom JavaScript file in the story_content folder of your published output, and add the following line of code to the story.html file before the closing </head> tag.

    <script LANGUAGE="JavaScript1.2" SRC="story_content/MyJavaScriptFunctions.js" TYPE="text/javascript"></script>

    Then call the appropriate functions in your Storyline triggers. Note that this method isn't officially supported by Articulate.
  • Storyline doesn't have documented system variables that you can use in JavaScript. You may discover some by working with Storyline's published output or searching the community forums. Just be aware that they could interfere with course playback, and they might not work in all versions of Storyline.
  • For general information on JavaScript coding, see or Codecademy.


Find examples of common JavaScript triggers below. And be sure to check out our JavaScript challenge and recap for dozens of demos from our wonderful community of e-learning developers!

Change the value of a Storyline variable
This example assigns the current date to a Storyline variable.
[video demonstration here]

var currentTime = new Date()
var month = currentTime.getMonth() + 1
var day = currentTime.getDate()
var year = currentTime.getFullYear()
var dateString=month + "/" + day + "/" + year
var player = GetPlayer();

Popup message (text only)

alert("Your message here...");

Popup message (text and value of a Storyline variable)

var player = GetPlayer();
alert("Welcome back, " + player.GetVar("FirstName") + ".");

Save Storyline variables to a text file
[video demonstration here]

var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.OpenTextFile("C:\\Test.txt", 8, true, 0);
var player = GetPlayer();
var name = player.GetVar("TextEntry");
var email = player.GetVar("TextEntry1");
s.WriteLine("Email: " + email);
s.WriteLine("Name: " + name);

Print current slide


Launch new email message

var email="";
var subject="subject line";
var body_start="How you want to begin your body.";
var mailto_link='mailto:'+email+'?subject='+subject+'&body='+body_start;,'emailWin');

Auto-scroll web page to specific location

window.scroll(0,150); // horizontal and vertical location

Auto-scroll web page relative to current location

window.scrollBy(0,150); // horizontal and vertical scroll increments

Change HTML background color

document.bgColor = "#990000";

Change HTML background image

if (document.body){
document.body.background = "image.jpg";

Generate a random number
This example generates a random number between 1 and 10.
[video demonstrations here and here]

var randomnumber = Math.floor((Math.random()*10)+1);
var player = GetPlayer();