Javascript API包装的LMSSetValue不是从LMSGetValue获得的设置值,它们不同吗?
我在new.js中有get和set代码:Javascript API包装的LMSSetValue不是从LMSGetValue获得的设置值,它们不同吗?,javascript,scorm,scorm2004,Javascript,Scorm,Scorm2004,我在new.js中有get和set代码: APIClass.prototype.LMSGetValue = function (element) { var value = GetValueJson(element, '1.2', 'LMSGetValue'); return value; } APIClass.prototype.LMSSetValue = function (element, value) { SetValueJson(element, value, '
APIClass.prototype.LMSGetValue = function (element) {
var value = GetValueJson(element, '1.2', 'LMSGetValue');
return value;
}
APIClass.prototype.LMSSetValue = function (element, value) {
SetValueJson(element, value, '1.2', 'LMSSetValue');
return "true";
}
API_1484_11_Class.prototype.GetValue = function (element) {
var value = GetValueJson(element, '2004 3rd Edition', 'GetValue');
return value;
}
API_1484_11_Class.prototype.SetValue = function (element, value) {
SetValueJson(element, value, '2004 3rd Edition', 'SetValue');
return "true";
}
function SetValueJson(key1, value1, scormVersion, methodCalled) {
if (key1 = "cmi.suspend_data") {
value1 = "none";
}
var obj = {
key: key1,
value: value1
}
setValuesArray.push(obj);
for (var i = setValuesArray.length - 1; i >= 0; i--) {
var array = setValuesArray[i];
if (array.key === key1) {
alert("returning value for key= " + setValuesArray[i].key + " with value as: " + setValuesArray[i].value);
return setValuesArray[i].value;
}
}
//return value1;
}
函数GetValueJson(key,scormVersion,methodCalled){
当我想要设置一个值(SetValueJson)时,它与我在GetValueJson中得到的值不同,我会得到一个弹出窗口,说明无法存储持久数据。我如何解决这个问题?一些模块使用1.2,其他模块使用2004
感谢对您提供的示例代码的观察:
if(key=“cmi.suspend\u data”)
和if(key=“cmi.completion\u status”)
在我看来像是打字错误。您是否试图在这里赋值?通常认为在条件语句中赋值是一种不好的做法,我倾向于认为这些都是打字错误
对代码进行加密还指出setValuesArray
未定义,value
在GetValueJson
函数中未定义
另一个考虑事项:SCORM的cmi.suspend_data
空间非常有限,经常会意外尝试并存储超过允许数量的数据。SCORM 1.2提供4096字节,而SCORM 2004提供64000字节。如果在测试中使用SCORM 1.2,我会检查以确保字符串不超过4096字节
更新:
重新阅读您的代码后,我看到您的帖子被标记为SCORM2004
,但您正在指定SCORM 1.2元素:
SetValueJson(element, value, '1.2', 'LMSSetValue');
function SetValueJson(key1, value1, scormVersion, methodCalled)
您的代码在
SetValueJson
和GetValueJson
中指定了SCORM 1.2,并使用了SCORM 1.2方法LMSSetValue
和LMSGetValue
,但它还包含SCORM 2004 CMI元素CMI.location
和CMI.completion\u status
。SCORM 1.2和SCORM 2004语法不能混合,因此您需要将您的代码更正为仅使用其中一个。是的,谢谢,我意识到并修复了它,但仍然不确定它要如何设置一个与我刚得到的值不同的值?
SetValueJson(element, value, '1.2', 'LMSSetValue');
function SetValueJson(key1, value1, scormVersion, methodCalled)