Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Captivate SCORM 2004 Output, JavaScript in <head> externalized to separate file named captivate.js
// set document.domain property here, if it works for your environment/SCORM implementation
// document.domain="";
var g_intAPIType = 0;
// Hook for Internet Explorer
if ((navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) || g_intAPIType == -1)
{
g_intAPIType = 0;
document.write('<script language=\"VBScript\"\>\n');
document.write('On Error Resume Next\n');
document.write('Sub Captivate_FSCommand(ByVal command, ByVal args)\n');
document.write('Call Captivate_DoFSCommand(command, args)\n');
document.write('End Sub\n');
document.write('</script\>\n');
document.write('<script language=\"VBScript\"\>\n');
document.write('On Error Resume Next\n');
document.write('Sub Captivate_DoExternalInterface(ByVal command, ByVal parameter, ByVal value, ByVal variable)\n');
document.write('Call Captivate_DoExternalInterface(command, parameter, value, variable)\n');
document.write('End Sub\n');
document.write('</script\>\n');
} else {
g_intAPIType = 0;
}
var strURLFile = "sample.swf"; // Name of the flash file
var intIntervalSecs = 1; // Number of seconds to wait for SCORM API to load
var g_intAPIOrder = 0; // Way to search for API object (0 - starts with bottom up; 1 - starts top down)
var strURLBase = "";
var strURLParams = "";
var strURLFull = document.location + "";
var intTemp = strURLFull.indexOf("#");
if (intTemp == -1)
intTemp = strURLFull.indexOf("?");
if (intTemp > 0)
strURLParams = strURLFull.substring(intTemp + 1, strURLFull.length);
var strTemp = location.protocol.toUpperCase();
if (strTemp.indexOf("FILE") == -1)
var intTemp = location.pathname.lastIndexOf("/");
else
var intTemp = location.pathname.lastIndexOf("\\");
if (intTemp != -1)
strURLBase = location.protocol + "//" + location.host + location.pathname.substring(0, intTemp + 1);
else
strURLBase = location.protocol + "//" + location.host + location.pathname;
strURLParams = (strURLParams==unescape(strURLParams)?escape(strURLParams):strURLParams);
strURLParams = (strURLParams==""?"":"?") + strURLParams;
function Finish()
{
if ((isAPI()) && (g_bFinishDone == false))
{
(g_zAPIVersion=="0.2"?g_objAPI.LMSCommit(""):g_objAPI.Commit(""));
g_bFinishDone = (g_zAPIVersion=="0.2"?g_objAPI.LMSFinish("") == "true":g_objAPI.Terminate("") == "true");
}
return (g_bFinishDone + "" ) // Force type to string
}
if(g_intAPIType==0)
{
// Detect Internet Explorer
var g_bIsInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
// Handle fscommand messages from a Flash movie
function Captivate_DoFSCommand(command, args)
{
var CaptivateObj = g_bIsInternetExplorer ? Captivate : document.Captivate;
var strFSArgs = new String(args);
var strFSCmd = new String(command);
var strErr = "true";
var strFSArg1, strFSArg2, strFSArg3
var intFSDelimiter = strFSArgs.indexOf("|");
if (intFSDelimiter > -1)
{
strFSArg1 = strFSArgs.substr(0, intFSDelimiter); // Name of data element to get from API
var strFSTemp = strFSArgs.substr(intFSDelimiter + 1);
intFSDelimiter = strFSTemp.indexOf("|");
if(intFSDelimiter > -1)
{
strFSArg2 = strFSTemp.substr(0, intFSDelimiter); // Value
strFSArg3 = strFSTemp.substr(intFSDelimiter + 1); // Variable
} else {
strFSArg2 = strFSTemp;
}
} else {
strFSArg1 = strFSArgs;
}
// do nothing, if SCORM API is not available
if (!isAPI()) return;
if ( strFSCmd == "LMSInitialize" || strFSCmd=="Initialize")
{
CaptivateObj.SetVariable(strFSArg3, eval('g_objAPI.' + strFSCmd + '(\"\");'));
} else if ( strFSCmd == "LMSSetValue" || strFSCmd=="SetValue") {
strErr = eval('g_objAPI.' + strFSCmd + '(\"' + strFSArg1 + '\",\"' + strFSArg2 + '\");');
CaptivateObj.SetVariable(strFSArg3, strErr);
} else if ( strFSCmd == "LMSFinish" || strFSCmd=="Terminate") {
g_bFinishDone = eval('g_objAPI.' + strFSCmd + '(\"\");')
strErr = g_bFinishDone;
CaptivateObj.SetVariable(strFSArg3, g_bFinishDone);
} else if ( strFSCmd == "LMSCommit" || strFSCmd=="Commit") {
strErr = eval('g_objAPI.' + strFSCmd + '(\"\");');
CaptivateObj.SetVariable(strFSArg3, strErr);
} else if ((strFSArg2) && (strFSArg2.length > 0)) {
if(strFSCmd=="LMSGetLastError" || strFSCmd=="GetLastError")
{
strErr = eval('g_objAPI.' + strFSCmd + '();')
CaptivateObj.SetVariable(strFSArg3, strErr);
} else {
strErr = eval('g_objAPI.' + strFSCmd + '(\"' + strFSArg1 + '\");')
CaptivateObj.SetVariable(strFSArg3, strErr);
}
} else if (strFSCmd.substring(0,3) == "LMSGet") {
strErr = "-2: No Flash variable specified"
}
return strErr;
}
function Captivate_DoExternalInterface(command, parameter, value, variable)
{
var CaptivateObj = g_bIsInternetExplorer ? Captivate : document.Captivate;
//alert("command " + command + " ;parameter " +parameter+ " ;value " + value + " ;variable " + variable );
//var strFSArgs = new String(args);
var strFSCmd = new String(command);
var strErr = "true";
var strFSArg1, strFSArg2, strFSArg3;
strFSArg1 = parameter;
strFSArg2 = value;
strFSArg3 = variable;
/*var intFSDelimiter = strFSArgs.indexOf("|");
if (intFSDelimiter > -1)
{
strFSArg1 = strFSArgs.substr(0, intFSDelimiter); // Name of data element to get from API
var strFSTemp = strFSArgs.substr(intFSDelimiter + 1);
intFSDelimiter = strFSTemp.indexOf("|");
if(intFSDelimiter > -1)
{
strFSArg2 = strFSTemp.substr(0, intFSDelimiter); // Value
strFSArg3 = strFSTemp.substr(intFSDelimiter + 1); // Variable
} else {
strFSArg2 = strFSTemp;
}
} else {
strFSArg1 = strFSArgs;
}*/
// do nothing, if SCORM API is not available
if (!isAPI()) return;
if ( strFSCmd == "LMSInitialize" || strFSCmd=="Initialize")
{
//CaptivateObj.SetVariable(strFSArg3, eval('g_objAPI.' + strFSCmd + '(\"\");'));
CaptivateObj.SetScormVariable(strFSArg3,eval('g_objAPI.' + strFSCmd + '(\"\");'));
var courseStatus = eval('g_objAPI.' + 'GetValue' + '(\"' + "cmi.completion_status" + '\");');
if(courseStatus == 'not attempted'){
eval('g_objAPI.' + 'SetValue' + '(\"' + "cmi.completion_status" + '\",\"' + 'incomplete' + '\");');
}
} else if ( strFSCmd == "LMSSetValue" || strFSCmd=="SetValue") {
strErr = eval('g_objAPI.' + strFSCmd + '(\"' + strFSArg1 + '\",\"' + strFSArg2 + '\");');
//CaptivateObj.SetVariable(strFSArg3, strErr);
CaptivateObj.SetScormVariable(strFSArg3, strErr);
} else if ( strFSCmd == "LMSFinish" || strFSCmd=="Terminate") {
g_bFinishDone = eval('g_objAPI.' + strFSCmd + '(\"\");')
strErr = g_bFinishDone;
//CaptivateObj.SetVariable(strFSArg3, g_bFinishDone);
CaptivateObj.SetScormVariable(strFSArg3, g_bFinishDone);
} else if ( strFSCmd == "LMSCommit" || strFSCmd=="Commit") {
strErr = eval('g_objAPI.' + strFSCmd + '(\"\");');
//CaptivateObj.SetVariable(strFSArg3, strErr);
CaptivateObj.SetScormVariable(strFSArg3, strErr);
} else if ((strFSArg2) && (strFSArg2.length > 0)) {
if(strFSCmd=="LMSGetLastError" || strFSCmd=="GetLastError")
{
strErr = eval('g_objAPI.' + strFSCmd + '();')
//CaptivateObj.SetVariable(strFSArg3, strErr);
CaptivateObj.SetScormVariable(strFSArg3, strErr);
} else {
strErr = eval('g_objAPI.' + strFSCmd + '(\"' + strFSArg1 + '\");')
//CaptivateObj.SetVariable(strFSArg3, strErr);
CaptivateObj.SetScormVariable(strFSArg3, strErr);
}
} else if (strFSCmd.substring(0,3) == "LMSGet") {
strErr = "-2: No Flash variable specified"
}
return strErr;
}
}
<!-- Copyright [2008] Adobe Systems Incorporated. All rights reserved -->
<!-- saved from url=(0013)about:internet -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="standard.js" type="text/javascript"></script>
<script src="SCORM_support/scorm_support.js"></script>
<script type="text/javascript" language="JavaScript" src="captivate.js"></script>
</head>
<body bgcolor="#f5f4f1" onunload="Finish();">
<center>
<div id="CaptivateContent">&nbsp;
</div>
<layer id="NS_dynamic" name="NS_dynamic">
<script type="text/javascript">
var tempso = new SWFObject("SCORM_support/scorm_support.swf", "scorm_support", "2", "2", "10", "#CCCCCC");
tempso .addParam("quality", "high");
tempso .addParam("id", "scorm_support");
tempso .addParam("bgcolor","#FFFFFF");
tempso .addParam("menu", "false");
tempso .addParam("movie", "SCORM_support/scorm_support.swf");
tempso .setAttribute("redirectUrl", "http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash");
</script>
<noscript>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"
width="2" height="2" id="scorm_support" align="">
<param name=movie value="SCORM_support/scorm_support.swf"> <param name=quality value=high> <param name=menu value=false> <param name=bgcolor value=#FFFFFF>
<embed src="SCORM_support/scorm_support.swf" quality=high bgcolor=#FFFFFF width="2" height="2" name="scorm_support" align=""
type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
</object>
</noscript>
</layer>
<script type="text/javascript" language="JavaScript">
var timeCurrent_int = new Date().getTime();
var timeLimit_int = new Date().getTime() + (intIntervalSecs * 1000);
// This simply loops for a set period of time, waiting for the API to
// load and/or be found. A better solution would be to use setInterval
// and on the timeout, redirect or load the resulting Captivate file.
while((g_objAPI == null) && timeCurrent_int < timeLimit_int)
{
g_objAPI = getAPI(g_intAPIOrder);
timeCurrent_int = new Date().getTime();
}
if(g_objAPI != null)
{
strURLParams = "?SCORM_API=" + g_zAPIVersion + "&SCORM_TYPE=" + g_intAPIType;
}
document.write('<center>');
document.write('<table border="0" cellpadding="7" cellspacing="7"> \n');
document.write(' <tr> \n');
document.write(' <td align="middle">');
var so = new SWFObject(strURLFile + strURLParams, "Captivate", "641", "512", "10", "#CCCCCC");
so.addParam("quality", "high");
so.addParam("name", "Captivate");
so.addParam("id", "Captivate");
so.addParam("wmode", "window");
so.addParam("bgcolor","#f5f4f1");
so.addParam("menu", "false");
so.addVariable("variable1", "value1");
so.setAttribute("redirectUrl", "http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash");
so.write("CaptivateContent");
document.write('</td> \n');
document.write(' </tr> \n');
document.write('</table> \n');
document.write('</center>');
</script>
<script type="text/javascript">
document.getElementById('Captivate').focus();
document.Captivate.focus();
</script>
</center>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.