0 votes
ago in SoSci Survey (dt.) by s296721 (230 points)
edited ago by SoSci Survey

Hallo,

Ich habe ein Experiment in lab JS gecodet und es in Soscisurvey eingebunden. Ich starte es dann in dem Modus "Gesamtes Browser Fenster nutzen". Wenn man jedoch innerhalb des Experiments etwas nach unten scrollt, ist es hier nicht so, dass die nächste Seite im Experiment von oben startet. Der Cursor bleibt viel mehr auf seiner Position. Ich habe zunächst versucht, dies in lab JS zu ändern und dann in Sosci selbst über:

<script>
  setTimeout(function () {
    window.scrollTo(0, 0);
  }, 50);
</script>

--Bisher leider beides ohne Erfolg. Ich weiß, dass ich das Experiment auch im Vollbildmodus starten könnte. Das möchte ich aber nicht, da die Probanden nicht mehr in diesen zurückkönnen, wenn Sie ihn einmal verlassen haben.

Vielen Dank!

1 Answer

0 votes
ago by SoSci Survey (351k points)

Sie können gerne einen Pretest-Link direkt zur Seite mit dem LabJS-Experiment erstellen und hier posten.

Ohne dass ich es mir ansehen kann, würde ich vermuten, das Sei quasi ein Fenster im Fenster haben. Also das LabJS-Experiment in einer Box innerhalb des Fragebogens. Wenn das korrekt ist, würde Ihr JavaScript nur das äußere Fenster mit dem Fragebogen-Rahmen nach oben scrollen, aber nicht den Inhalt des LabJS-Experiments.

Um den Inhalt zu scrollen, müssten Sie das scrollTo() auf den Container anwenden. Oder Sie setzen an den Anfang des LabJS-Experiments (also ganz oben) ein

-Element, das Sie dann mit scrollIntoView() immer wieder sichtbar scrollen lassen.
ago by s296721 (230 points)
Vielen Dank für Ihre Hilfe! Wenn Sie jetzt zum Beispiel unter diesem Link: https://www.soscisurvey.de/7_maps/?act=dIctT5MDirhzonWhzvP9nslO auf der ersten Seite nach unten scrollen und dann die Leertaste drücken, wechselt zwar der Bildschirm, die Cursor Position ist aber weiterhin am Ende der Seite. Viele Grüße
ago by SoSci Survey (351k points)
Ja, es handelt sich dabei auch um das äußere Frame, wenn ich es richtig sehen. Und wenn ich in der Konsole window.scrollTo(0,0) aufrufe, springt es auch nach oben.

Ihr JavaScript in SoSci ist bisher nur einmalig. Wenn Sie statt setTimeout() ein setInterval() verwenden, dann würde es ständig nach oben springen. Allerdings kann man dann auch nicht mehr nach unten scrollen.

Die Musterlösung wäre, dass der Stimulus in das Fenster passt.

Die zweitbeste Lösung wäre, dass Sie vom LabJS eine Nachricht (Message) an das übergeordnete Fenster (SoSci) schickt, wenn es zum nächsten Screen geht, und SoSci diese Nachricht dann entgegen nimmt, und nach oben scrollt.

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

...