Tutorial: Updating Hyperlinks Without Republishing a Storyline Course

Have you ever had to edit, republish and re-upload a Storyline course because some of the hyperlinks had broken?

Maybe you develop eLearning courses for organisations who like to move resources around, you know, to be better organised or whatever, without realising the impact this has on those who are linking to those resources?

While you don't want to frustrate your learners by linking to resources that are unavailable, it can be incredibly time consuming to check and update thousands of hyperlinks, especially if this process involves manually editing, republishing and re-uploading all of your eLearning courses.

In this tutorial we will look at how to create hyperlinks that can be updated at a later stage without editing the published course.

And if you are interested in taking this a step further, we'll dig deeper in a follow-up series, where you'll learn a delightful little trick that will speed up the process of checking all of your courses for broken hyperlinks.

While it will take a little longer to set up the hyperlinks initially, the time savings down the track make this a no brainer. Especially for those who have a large amount of courses to maintain.

Click here do jump to the tutorial and here to download the source files used.

Let me know if you have any questions, comments or are stuck with implementing any of this. I'm happy to help where I can.

9 Replies
Matthew Bibby

I've just finished working on a free tool that you can use to test these hyperlinks.

As many of you would know, it can be very time consuming to go back through old courses and check that all of the hyperlinks are still valid. 

This tool helps greatly speed up the process. Here is a (limited) demo of the tool.

For more info, see the original tutorial on creating updatable hyperlinks.

Any questions, let me know.

Doug McCormick

Mathew Could you help please:

Have worked through your tutorial and it appears I have everything set up correctly but the link still doesn't work for me.  I have:

a.  Set up a trigger to LinkOne()

b.  Created a hyperlinks.js script: 

function LinkOne() {
window.open ("filename");
}

c.  Inserted the code:

<script src="Y:\SubLime text\hyperlinks.js" type="text/javascript"></script>

into story.html (Y: is an assigned directory)

Can this line of code be inserted anywhere into story.html or must it be in specific order in relation to existing story.html code?  Your thoughts on what could be broken would be appreciated.

Matthew Bibby

I suspect that it can't access the hyperlinks.js file as you have it stored on a network drive. 

How are you testing your course? Are you uploading it to your LMS or server? If so, when viewing the course, open the JavaScript Console in Chrome and check for errors. Let me know what it says. 

The script code needs to go before the </head> in your story.html.

Doug McCormick

Thanks for your response Matthew.

In answer to the points you have raised:
I suspect that it can't access the hyperlinks.js file as you have it
stored on a network drive.
>> No it is stored on the same drive (Y:) as the course. I also thought
that story.html cannot find the hyperlinks.js file so I also tried putting
a copy in the same directory as story.html.
>> Still no
success.

How are you testing your course?
>> For testing, I have published a web, single slide onto my PC.

Are you uploading it to your LMS or server?
No. Not using LMS but ultimately the project will be uploaded to AWS

If so, when viewing the course, open the JavaScript Console in Chrome and
check for errors. Let me know what it says.
>>app.min.js:3 actionator::exeJavaScript - LinkOne is not defined

The script code needs to go before the in your story.html.
>> Done

Thanks in anticipation!
Doug

Doug McCormick

Hello again Matthew

Have loaded my test file to AWS and still have the problem.

The console displays:
Failed to load resource: the server responded with a status of 403 ()

I then "opened" the hyperlinks.js file on the AWS server and then when I
tried to access again, the console reported the same message as earlier:
app.min.js:3 actionator::exeJavaScript - LinkOne is not defined

Any further clues please.

Thanks
Doug