1, 首先要修改imsmanifest.xml的版本号
这里可以将课件Quiznew2004.zip下面的imsmanifest.xml的schema粘帖过来。
2.修改config.js(最好这样,防止出现问题)
var nFindAPITries = 0;
var maxTries = 500;
var APIVersion = "";
var API = ScanForAPI(window);
移到最前端
3.修改config.js下面的onSCOExit(sessionTime)方法。
添加拿到当前课件完成状态功能:
var completionStatus =getAPI().GetValue('cmi.completion_status');
否则,这里的判断
if(completionStatus!= "completed") {
completionStatus= 'incomplete';
getAPI().SetValue('cmi.completion_status',completionStatus);
}
因为这里全局变量默认completionStatus=””,而这里没有取值,就会始终将课件状态设定为未完成。
4. config里面在方法退出的时候,需要进行function onSCOExit(sessionTime)下面的getAPI().SetValue('cmi.exit','normal');的判断就可以了(猜测)
在退出方法的时候添加,状态的获取:
varcompletionStatus = getAPI().GetValue('cmi.completion_status');
5.在cdrom.js
下面添加getMainFrame方法。
var mainfr = null;
function getMainFrame(){
if(mainfr == null){
if(parent.mainFrame) mainfr = parent.mainFrame
elseif(opener.parent.mainFrame) mainfr = opener.parent.mainFrame;
elseif(opener.opener.parent.mainFrame) mainfr = opener.opener.parent.mainFrame;
}
return mainfr;
}
6.在cdrom.js
window.onload = function(event)下添加
if(getMainFrame().document.getElementsByName("right")[0] ==undefined){
completionStatus = 'completed';
//这里通过getTopFrame拿到getAPI()去进行状态的设定
getTopFrame().getAPI().SetValue('cmi.completion_status',completionStatus);
}
判断课件是否完成功能。