QuizCreatorプログラミング知識・作業も不要な試験問題・クイズ作成ソフト


Q:QuizCreatorの結果送信画面で、画面が一瞬で閉じる

LMSによっては、Finishiを受け取ると画面を閉じてしまうものがあるようです。この場合、
JavaScriptで記述されている、QC内のSCORMのAPIを以下のように書き換えれば、問題が解決します。

(LMS向けに書き出された)Zipファイル内の、Quiz.htmlとscorm.jsを書き換えてください。

●scorm.js
SCOFinish関数を複製しSCOFinish2関数を作成します。
SCOFinish関数の中を空にします

●Quiz.html
bodyのonunloadでSCOFinishの代わりにSCOFinish2を実行します。

以下、書き換え例になります。
(SCORMのバージョンにより書き出されるファイルの詳細は異なりますが、対応する項目を編集すれば問題ありません。)

scorm.js
変更前
function SCOFinish() {
if ((hasAPI()) && (g_bFinishDone == false)) {
SCOReportSessionTime();
if (g_bSetCompletedAutomatically) {
SCOSetStatusCompleted();
}
if (typeof (SCOSaveData) != “undefined”) {
SCOSaveData();
}
g_bFinishDone = (g_objAPI.LMSFinish(“”) == “true”);
}
return (g_bFinishDone + “”);
}

変更後
function SCOFinish() {
return (g_bFinishDone + “”);
}

function SCOFinish2() {
if ((hasAPI()) && (g_bFinishDone == false)) {
SCOReportSessionTime();
if (g_bSetCompletedAutomatically) {
SCOSetStatusCompleted();
}
if (typeof (SCOSaveData) != “undefined”) {
SCOSaveData();
}
g_bFinishDone = (g_objAPI.LMSFinish(“”) == “true”);
}
return (g_bFinishDone + “”);
}

Quiz.html
変更前

変更後

以上の修正で、成績表示タイミングでのLMSFinishを取り消し、
ウィンドウを閉じたタイミングでLMSFinishを送信するようになります。