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

0 votes

Liebes Sosci-Survey-Team,

ich zeichne in meinem Fragebogen mittels des bereitgestellten Javascript-Codes auf, ob und wie oft das Browser-Fenster während der Bearbeitung gewechselt wird.

Da ich bereits in einer früheren Studie festgestellt habe, dass Versuchspersonen das teilweise sehr exzessiv tun, würde ich gern

  1. einen Alert einblenden, wenn das Browser-Fenster gewechselt wird (z.B. "Bitte wechseln Sie während der Bearbeitung das Fenster nicht.)
  2. Versuchspersonen nach einer bestimmten Anzahl von Fensterwechseln direkt ausschließen (also zur letzten Fragenbogenseite bringen)

Ist das umzusetzen und wenn ja, wie müsste man das angehen?

Ich hatte daran gedacht, jeweils eine Bedingung (if...) in den Javascript-Code einzubauen, aber ich in unsicher, ob ich das so machen kann.

Vielen Dank schon einmal!

in SoSci Survey (dt.) by s052839 (350 points)

1 Answer

0 votes
 
Best answer

einen Alert einblenden, wenn das Browser-Fenster gewechselt wird

Das JavaScript verwendet das "blur"-Ereignis, also

window.addEventListener("blur", ...)

... um das Verlassen des Fensters zu zählen. Sie können hier natürlich auch andere Aktionen vornehmen als nur zu zählen. Zum Beispiel können Sie ein DIV-Element mit der Warnung einblenden, wie hier beschrieben: Information per Mausklick

Versuchspersonen nach einer bestimmten Anzahl von Fensterwechseln direkt ausschließen

Sie haben die Zahl der Fensterwechsel ja in einer internen Variabe gespeichert. Der Code, den Sie am Anfang der relevanten (Folge-)Seiten einfügen müssten sähe entsprechend aus:

if (value('IV01_01') > 10) {
  text('screenout');
  buttonHide();
  pageStop();
}

Sie können das natürlich als Funktion unter Fragebogen zusammenstellen -> PHP-Funktionen definieren und dann oben auf jeder relevanten Seite einfügen.

Ich würde zu einem Screenout mit text() und buttonHide() anstatt einem goToPage('end') raten, weil Sie die Fälle "erfolgreich abgeschlossen" und "rausgeworfen" dann unterschiedlich behandeln können.

by SoSci Survey (193k points)
selected by s052839
Vielen Dank für die Antwort!
Der Alert klappt jetzt, aber das Screenout macht noch Probleme. Ich würde gern ein Screenout machen ab einer bestimmten Gesamtzahl von Fensterwechseln (über Seiten hinweg).
Ich habe es damit versucht (wenig elegant):

// Zähler aktivieren
blurCount("FW02_01");

var input = document.getElementById("FW01_01");
input.value = document.getElementById("FW01_01").value + document.getElementById("FW02_01");

(FW01_01 soll den Gesamtwert der Fensterwechsel über Seiten hinweg, FW02_02 die Anzahl der Fensterwechsel auf der Seite speichern.)

aber das hat nicht funktioniert.
Wie kann ich das verbessern?

Vielen Dank schon mal!
Die Funktion blurCount() sollte automatisch "weiterzählen", wenn Sie dieselbe Variable erneut verwenden.

Sie können also blurCount() einfach zweimal auf der Seite einbinden. Einmal für eine Variable, die pro Seite zählt. und einmal für eine Variable, die über mehrere Seiten zählt.

Alternativ verwenden Sie valueSum('FW01') - damit das klappt, müssten Sie natürlich alle internen Variablen für die unterschiedlichen Seiten in Frage FW01 anlegen. Sonst müssten Sie die Variablennamen in valueSum() einzeln aufführen.
Für beide der angegebenen Lösungen erhalte ich eine Fehlermeldung. Ich befürchte, das liegt daran, dass ich dann dieselbe interne Variable (FW01) auf jeder Fragebogenseite benötige.

Eine oder mehrere Variablen (FW01_01) wurden bereits auf Seite 4 abgefragt. Bitte beachten Sie, dass die Antworten von Seite 4 hier angezeigt und anschließend überschrieben werden. Falls Sie eine gleichartige Frage mehrfach benötigen, erstellen Sie eine Kopie der Frage.

Kann ich das irgendwie umgehen oder habe ich einfach einen Fehler gemacht?
> Ich befürchte, das liegt daran, dass ich dann dieselbe interne Variable (FW01) auf jeder Fragebogenseite benötige.

Das dürfte nur eine Warnung sein, keine Fehlermeldung. Wenn Sie wissen, was Sie tun, dann können Sie die Warnung zur Kenntnis nehmen und nicht weiter beachten.
...