Created
January 12, 2012 08:50
-
-
Save pipwerks/1599457 to your computer and use it in GitHub Desktop.
Captivate SCORM 2004 Output, all inline JavaScript removed
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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; | |
} | |
} | |
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; | |
} | |
window.onload = function (){ | |
var so = new SWFObject(strURLFile + strURLParams, "Captivate", "641", "512", "10", "#CCCCCC"); | |
so.addParam("name", "Captivate"); | |
so.addParam("bgcolor","#f5f4f1"); | |
so.addParam("menu", "false"); | |
so.write("CaptivateContent"); | |
document.getElementById('Captivate').focus(); | |
document.Captivate.focus(); | |
}; | |
window.onunload = Finish; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- Copyright [2008] Adobe Systems Incorporated. All rights reserved --> | |
<!-- saved from url=(0013)about:internet --> | |
<!DOCTYPE HTML> | |
<html lang="en"> | |
<head> | |
<meta charset="utf-8" /> | |
<title></title> | |
<script src="standard.js"></script> | |
<script src="SCORM_support/scorm_support.js"></script> | |
<script src="captivate.js"></script> | |
<style> | |
body { background: #f5f4f1; text-align: center; } | |
</style> | |
</head> | |
<body> | |
<div id="CaptivateContent"> </div> | |
<layer id="NS_dynamic" name="NS_dynamic"> | |
<noscript> | |
This course requires JavaScript to be enabled in your browser. Please enable JavaScript, then relaunch the course. | |
</noscript> | |
</layer> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment