0 votes
in SoSci Survey (dt.) by s339463 (120 points)

Hallo zusammen,

ich habe eine Studie angelegt und neben Selbstbericht möchte ich ein kurzes Mouse-Tracking-Experiment einbinden, das ich mit lab.js programmiert habe (und in lab.js auch funktioniert). Sosci Survey bietet ja eine Option zum Hochladen von lab.js-Experimenten und ich kann die ZIP-Datei dort ohne Probleme hochladen. Das Problem tritt auf, wenn ich die Studie in der Vorschau anzeige: Sobald das mit lab.js erstellte Mousetracking-Experiment erscheinen sollte, zeigt Soscisurvey nur die Meldung „Gleich geht es weiter...“ an und es passiert nichts (es besteht aber kein Problem beim Laden der Seite). Ich habe getestet, woran das liegen könnte, und habe es auf das Mousetrap-Plugin in lab.js eingegrenzt. Wenn ich nichts am lab.js-Experiment ändere, außer das Mousetrap-Plugin zu entfernen, funktioniert es in Sosci Survey einwandfrei und das Experiment wird angezeigt. Sobald ich das Mousetrap Plugin wieder zum lab.js-Experiment hinzufüge, scheint Sosci Survey sich daran aufzuhängen. Im Browser Inspektor wird der Fehler "Uncaught Error: Couldn't instantiate plugin mousetrap. Error: Uo(...) is not a constructor" angezeigt.

Wenn jemand eine Idee hat, warum dieses Problem auftritt und wie man es beheben kann, wäre ich sehr dankbar!

Vielen Dank!

by SoSci Survey (356k points)
> Error: Uo(...) is not a constructor

Das könnte darauf hindeuten, dass es eine Überschneidung im Namensraum zwischen dem PlugIn und SoSci Survey gibt. Möchten Sie die ZIP vom Experiment vielleicht mal an info@soscisurvey.de senden? Dann prüfen wir, ob sich das Problem SoSci-seitig beheben lässt.
by s339463 (120 points)
Vielen Dank für die Antwort!

Ich habe mehrmals versucht, die ZIP vom Experiment an die Info-Mail zu senden, aber der Server hat die Zip immer geblockt. Daher habe ich jetzt nur die study.json von lab.js gesendet und hoffe, dass das ggf reicht, um das Problem SoSci-seitig zu untersuchen.

Über ein Update, ob man das Problem lösen kann, würde ich mich jederzeit freuen. Danke!
by SoSci Survey (356k points)
Sie können die Datei gerne über s2survey.net/transfer hochladen.

1 Answer

0 votes
ago by SoSci Survey (356k points)

Danke für den Upload und entschuldigung, dass Sie erst jetzt wieder von mir hören.

Leider nichts besonders Hilfreiches ... das Problem scheint schon direkt in dem JSON zu sein, welches im ZIP steckt. Hier der entsprechende Ausschnitt:

            Fo.metadata = { module: ["canvas"], nestedComponents: ["content"] };
            var Uo = function (t, e) {
                    return t.reduce(function (t, e) {
                        return t[e];
                    }, e);
                },
                fromObject = function (t, e) {
                    return qo(b()(t), e);
                },
                qo = function (t, e) {
                    var r = e || window.lab;
                    if (void 0 === r)
                        throw new Error("Couldn't find library in global scope, and no root object available");
                    var o = Lo(t.type.split(".")).slice(1),
                        i = Uo(o, r);
                    return (
                        i.metadata.nestedComponents.forEach(function (e) {
                            t[e] &&
                                (Array.isArray(t[e])
                                    ? (t[e] = t[e].map(function (t) {
                                          return fromObject(t, r);
                                      }))
                                    : x()(t[e]) && (t[e] = fromObject(t[e], r)));
                        }),
                        t.plugins &&
                            (t.plugins = t.plugins.map(function (t) {
                                try {
                                    var e = Lo((t.path || t.type).split(".")),
                                        o = e[0],
                                        i = e.slice(1);
                                    return new (Uo(i, "global" === o ? n.g || window : r))(t);
                                } catch (e) {
                                    throw new Error(
                                        "Couldn't instantiate plugin ".concat(t.type, ". ") +
                                            "Error: ".concat(e.message)
                                    );
                                }
                            })),
                        new i(t)
                    );
                };

Das ist ziemlich schlecht lesbar, weil es komprimiert wurde. Aber man erkennt die Definition der Funktion Uo, über welche sich die Fehlermeldung beschwert ganz oben und die Stelle, an welcher die Fehlermeldung Couldn't instantiate plugin geworfen wird, ziemlich am Ende.

Nachdem das Ganze (hier nicht sichtbar) in weiterem HTML-Code gekapselt ist, scheint mir eine Wechselwirkung mit anderen Teilen von SoSci Survey weitgehend ausgeschlossen.

Ich befürchte in diesem Fall können nur die Entwickler von Lab.js und des mousetrap Plugins weiterhelfen.

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...