0 votes
in SoSci Survey (dt.) by s066535 (275 points)

Liebes SoSci Survey Forum

Ich habe eine Zuordnungsaufgabe mit Reaktionszeitmessung erstellt. Nun versuche ich mittels einem javascript einen automatischen Click auszulösen. Das Ziel ist, dass die Zuordnungsaufgabe automatisch startet (und die Reaktionszeit trotzdem akkurat gemessen werden kann) ohne dass jemand aktiv auf Start drücken muss.

Dazu habe ich unter die Zuordnungsaufgabe, welche mit PHP eingefügt wurde, folgender HTML Code eingefügt:

<button id="btn1" onclick="addClick()"></button>
      
<script type="text/javascript">    
        // Simulate click function
        function clickButton() {
            document.querySelector('#btn1').click();
        }
        clickButton();
</script>

Dies scheint so nicht zu funktionieren. Die eigentliche Frage wird nicht mehr dargestellt, SosciSurvey meldent "Die Daten konnten nicht vollständig übermittelt werden. Wir bitten um Verständnis für dieses technische Problem.,...", die Adresszeile im Browser ändert ständig und es führt so nicht zum gewünschten Ziel.

Haben Sie eine Vermutung, was das Problem ist? Oder gfibt es einen anderen Weg um dieses Ziel zu erreichen?

Vielen Dank

1 Answer

0 votes
by SoSci Survey (328k points)
edited by SoSci Survey

Akkurat wird die Messung dadurch nicht unbedingt ... denn das wird sie gerade dadurch, dass der Start eben nicht automatisch ausgelöst wird, sondern durch eine Aktion des Nutzers.

Wir haben auf www.soscisurvey.de nun ein Update eingespielt, welches es Ihnen erlaubt, die Auswahl einer Option in der Zuordnungaufgabe mittels JavaScript auszulösen. Dies könnte dann z.B. so aussehen:

window.addEventListener("load", function() {
  window.setTimeout(function() {
    s2.ZA01.selectOption(1);
  }, 1000);
});

Hier würde eine Sekunde nach dem (vollständigen) Laden der Seite die erste Option in der Zuordnungaufgabe mit der Kennung ZA01 ausgewählt.

by s066535 (275 points)
Besten Dank. Unsere Lizenz läuft über eine Hochschullizenz für nicht-kommerzielle Forschung. Kann unsere IT dieses Update ebenfalls laden?
by SoSci Survey (328k points)
Das Update 3.3.07 von vorgestern (https://www.soscisurvey.de/download/) enthält diese Optimierung bereits. Wenn Ihre IT das einspielt, sollten Sie das selectOption() verwenden können.
by s066535 (275 points)
edited by s066535
Besten Dank. Inzwischen konnte unsere IT das Update vornehmen, aktuell habe ich die Version 3.3.11.
Wenn ich nun allerdings den vorgeschlagenen java script code als html code im Fragebogen abspeichere, und dann mittels PHP code einbaue:

if(value('AA65') == 1 ){
$myid_0b = id('B0', 13 + $blocktrain);
}else if (value('AA65') == 2 ){
$myid_0b = id('B0', 15 + $blocktrain);
}

registerVariable($myid_0b);

show('B017', [
    '%question%' => $myid_0b
]);

Oder eine Zuordnungsaufgabe B019 direkt auf eine Seite ziehe und darunter den vorgeschlagenen java script code als html code im Fragebogen abspeichere:
<script type="text/javascript">
<!--
 window.addEventListener("load", function() {
  window.addTimeout(function() {
    s2.B019.selectOption(1);
  }, 100);
});

// -->
</script>

erscheint im ersten Fall eine leere weisse Seite:
https://sosci.scicore.unibas.ch/iron/?act=EscG9G1zv7ZG3w5Qj4n2QMSA

im zweiten Fall erscheint zwar die Zuordnungsaufgabe, doch sie startet nicht automatisch:
https://sosci.scicore.unibas.ch/iron/?act=40oLE2sxTvptMdYQEBn4YDHQ

Habe ich einen Fehler in den Code geschrieben oder hat eventuell das Update nicht vollständig funktioniert? Die IT hat erwähnt, dass bei uns auf dem Server eine ältere PHP Version geladen ist, welche sie in der Zukunft ebenfalls updaten wird.
by SoSci Survey (328k points)
Die Fragebogenseite beschwert sich, dass die Frage B019 mehrfach in der Seite vorkommt. Könnte es sein, dass Sie die Frage in die Seite gezogen und zusätzlich nochmal mittels show() oder question() eingebunden haben?
by s066535 (275 points)
Ich hatte verschiedene Möglichkeiten ausprobiert und versehentlich drin gelassen. Nun ist die Frage B019 nur einmal drin, jedoch startet die Frage noch immer nicht automatisch. Haben Sie eine Idee, wieso es nicht funktioniert?
by SoSci Survey (328k points)
Die Fehlerkonsole im Browser sagt

> window.addTimeout is not a function

und in der Tat hatte ich oben versehentlich addTimeout() statt dem korrekten setTimeout() geschrieben. Oben habe ich es korrigiert - in Ihrem Fragebogen müssten Sie das noch machen.
by s066535 (275 points)
Besten Dank. Nun zeigt es im Browser keinen Fehler mehr an, aber es startet noch immer nicht automatisch. Haben Sie eventuell einen weiteren Hinweis?
Vielen Dank
by SoSci Survey (328k points)
Es scheint so, dass beim ersten Mal weder Option 1 noch 2 erlaubt ist ... bitte ändern Sie die Zahl daher in eine 0:

s2.B019.selectOption(0);

Die Konsole beschwert sich dann, aber es funktioniert :)

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

...