我为LMS创建了一个SCORM API,现在我正在使用硬编码的userID和courseID变量(引用数据库中的东西的变量).我需要传递真实的userID和courseID,而不是使用硬编码的.我知道userID存储在会话中,courseID从启动页面传递.
如何将这些内容导入JavaScript中,以便将其包含在我对处理SCORM调用的.ashx的调用中?
我正在尝试使用python和lxml创建一个看起来像这样的xml条目:
<resource href="Unit 4.html" adlcp:scormtype="sco">
Run Code Online (Sandbox Code Playgroud)
我正在使用python和lxml.我遇到了adlcp:scormtype属性问题.我是xml的新手,所以如果我错了请纠正我. adlcp是一个名称空间,scormtype是一个在adlcp名称空间中定义的属性,对吧?
我甚至不确定这是否是正确的问题但是...我的问题是,如何使用lxml从非默认命名空间向元素添加属性?如果这是一个微不足道的问题,我会提前道歉.
tincan和Scorm有什么区别?
我有要求,我们需要使用第三方内容服务器支持CMS内容.
那么哪一个是好的Tincan还是SCORM?
这两个有哪些优点和缺点?
我正在为SCORM 2004第4版创建一个javascript API.对于那些不了解SCORM的人来说,基本上它是一个API标准,电子教学课程可以用来与LMS(学习管理系统)进行通信.现在API必须具有以下方法:
现在必须在其他任何东西之前调用Initialize,而Terminate必须在最后一个之前调用.可以在那里之间的任何地方调用GetValue/SetValue.我正在做的是在Initialize方法中我从Web服务获取一些JSON并将其存储在API中(稍后使用GetValue/SetValue方法时使用).我遇到的问题是通过jQuery的AJAX调用是异步的,因此可以在加载JSON之前完成Initialize方法调用.这就是它的方式,在调用Initialize之后调用GetValue可能会导致意外问题b/c GetValue使用的JSON还没有.我的问题是:在调用GetValue/SetValue方法之前,我该怎么做才能确保加载JSON?我知道简单的答案是让它同步,但主要是不建议,而且似乎并不想为我做那件事.这是我的代码:
function GetJSON(){
var success = false;
$.ajaxSetup({async:false}); //should make it synchronous
$.getJSON("http://www.mydomain.com/webservices/scorm.asmx/SCORMInitialize?
learnerID=34&jsoncallback=?",
function(data){
bind(data);
success = true;
}
);
return success;
}
function bind(data){
this.cmi = eval("(" + data.d + ")");
$.ajaxSetup({async:true}); //should make it asynchronous again
}
Run Code Online (Sandbox Code Playgroud)
有没有人有任何想法?我真的很感激!
Javascript中是否有免费的开源轻量级SCORM 2004播放器?我正在寻找一些不受任何技术(PHP,.NET,Java)约束的东西,只是实现基本的SCORM 2004 LMS API函数,处理错误代码以及解析SCORM清单.谢谢.
更新:我已经制作了一个非常简单的JavaSript SCORM 2004 API(但仍在寻找更成熟的代码).
Update2:我找到了一个非常好的项目TinyLMS.它只是SCORM 1.2,但我已与我的客户协商SCORM 1.2就足够了.所以我将基于TinyLMS制定解决方案.
有没有任何scorm播放器纯粹基于javascript和html.我想,它想使用任何服务器端语言.我找到了一个开源的Scormpool,但它只是在玩它不跟踪的scorm.并且没有可用的文档.如果你们知道任何请帮助.
我们为我们的客户开发了电子学习网站.最近他问他需要SCORM饲料.我知道我的系统是否与scrom兼容.任何人都知道任何开源php工具或lib从现有数据生成scrom.
谢谢
我正在为LMS构建SCORM 2004 javascript API,SCORM 2004的一个要求是传入它的时间间隔必须遵循以下格式.有谁知道这个正则表达式是什么?我试图围绕它,但无济于事.注意:P必须始终是第一个字符.
P [yY] [mM] [dD] [T [hH] [nM] [s [.s] S]]其中:
- y:年数(整数,> = 0,不受限制)
- m:月数(整数,> = 0,不受限制)
- d:天数(整数,> = 0,不受限制)
- h:小时数(整数,> = 0,不受限制)
- n:分钟数(整数,> = 0,不受限制)
- s:秒数或秒数的分数(实数或整数,> = 0,不受限制).如果使用分数秒,则SCORM进一步将字符串限制为最多2位数(例如,34.45 - 有效,34.45454545 - 无效).
- 如果存在相应的非零值,则应出现字符文字指示符P,Y,M,D,T,H,M和S.
- 应支持零填充值.零填充不会更改由一组字符表示的数字的整数值.例如,PT05H相当于PT5H和PT000005H.
示例 -
- P1Y3M2DT3H表示1年,3个月,2天和3个小时的时间段
- PT3H5M表示3小时5分钟的时间段
任何帮助将不胜感激.
谢谢!
更新:
我添加了一些必须保留的额外标准 -
- 指示符P应存在
- 如果年,月,日,小时,分钟或秒的值为零,则可以省略值和相应的字符文字名称,但除了指示符P之外,还应存在至少一个字符文字指示符和值.
- 如果不使用所有时间组件(小时,分钟和秒),则应省略指示符T. 零值可以与任何时间组件一起使用(例如,PT0S)
你可能来这里是为了责备我,但这是一个真实的用例.
在线教育领域,有SCORM课程.我必须在网站上使用旧的SCORM课程.SCORM课程是"基于Web的"并在浏览器中运行,但是他们希望在iframe中运行,并且他们希望父级提供GetValue方法和SetValue.
因此,这些SCORM课程正在执行诸如parent.SetValue("得分","90")之类的事情并继续前进.如果有任何问题,该函数应该返回"false".
SCORM来自90年代,在现代网络中,我们知道我们必须做回调/承诺,http经常"失败".您可能认为解决方案是SetValue,它写入本地数据,然后尝试重试直到它完成,但SCORM课程通常设置为仅在SetValue工作时移动到下一个屏幕,因此您不应该放弃除非SetValue实际保存在服务器上,否则用户前进.
TL; DR
假设同步请求是必需的,那么正确的方法是什么?
到目前为止,我知道 $.ajax({async:false ... 但现在浏览器警告这一点,听起来他们只会忽略你的同步请求.我想也许使用websockets或web worker或者某种东西是在现代编程中做同步请求的正确方法.但我不知道如何提出这样的要求.并且我不允许更改SCORM课程的代码(它们是使用各种课程制作工具生成的)
为了澄清,我完全控制了SetValue函数的实现.
会$.ajax({async:false ...长期工作吗?(5 - 10年)
注意:在此用例中完全冻结UI直到请求成功或失败完全可以接受.这就是课程所假设的.
我知道有很多类似的问题,唯一的区别是我从 **同一 ** 域提供的两个页面都得到了这个问题。这可以在下面的示例中看到。
Uncaught DOMException: Blocked a frame with origin "https://content.samba.net" from accessing a cross-origin frame.
at findAPI (https://content.samba.net/00/07/19-10/scorm_support/scorm_support.js:14:10)
at getAPI (https://content.samba.net/00/07/19-10/scorm_support/scorm_support.js:61:13)
at https://content.samba.net/00/07/19-10/SCORM.htm:200:16
Run Code Online (Sandbox Code Playgroud)
这种情况不应该只发生在不同域之间吗?
================================编辑=================== ====================
当然,在我发布几秒钟后,我发现了这个问题。SCORM 包具有定位 SCORM API 的功能。它看起来像顶部和开启器。就我而言,开窗器位于不同的域中,它试图访问该域。
为了历史的缘故,我会把它留下来。我的回答有详细信息。
scorm ×10
javascript ×5
jquery ×2
ajax ×1
asp.net ×1
asynchronous ×1
cross-domain ×1
escaping ×1
iframe ×1
json ×1
lxml ×1
php ×1
python ×1
regex ×1
scorm2004 ×1
time ×1
tin-can-api ×1
xml ×1