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 möchte, in einem Survey 2 unterschiedliche Stimuli (Bilder) auf verschiedenen Seiten jeweils mit einem Timer von 20 Sekunden einstellen.

Dies klappt beim ersten Bild auf Seite 3 auch problemlos. Beim zweiten Bild auf Seite 6 habe ich nun aber das Problem, dass dieses Bild nur bei Windows Geräten angezeigt wird. Apple Geräte (Mac & Mobil) sowie Mobile Android Endgeräte zeigen einfach kein Bild und keine Seite an.

Wie kann ich diesen Fehler beheben?

Mein Code auf Seite 3 ist:

PHP:

if (!isset($time0)) {
$time0 = time();
registerVariable($time0); // Die Variable $time0 auch nach Ende des PHP-Codes aufbewahren
}
// Prüfung, ob die Zeit schon abgelaufen ist
// (z.B. weil der Teilnehmer die Seite neu geladen hat)
$timer = 60; // Der Teilnehmer hat 1 Minute (60 Sekunden) Zeit zur Bearbeitung
if (time() >= $time0 + $timer) {
goToPage('next');
}
// Die verbleibende Zeit muss auch dem JavaScript-Code bekannt gemacht werden
$remain = $time0 + $timer - time();

replace('%remain%', 20);

HTML:


<!-- // Knopf zunächst ausblenden SoSciTools.submitButtonsHide(); // Nach Ablauf von 20 Sek = 20000 ms wieder einblenden window.setTimeout( SoSciTools.submitButtonsDisplay, 20000 ) // -->


<!-- // Funktion zur Weiterleitung function weiter() { // Eine Meldung anzeigen (optional) //alert("Die Zeit ist vorbei."); // Den Teilnehmer zur nächsten Seite weiterleiten SoSciTools.submitPage(); } // Initialisierung der Weiterleitung SoSciTools.attachEvent(window, "load", function(evt) { // Weiter-Knopf ausblenden (optional) SoSciTools.submitButtonsHide(); // Timer für automatische Weiterleitung starten window.setTimeout(weiter, %remain% * 1000); }); // -->

Verbleibende Zeit:


<!--
// Funktion zur Weiterleitung
function weiter() {
// Eine Meldung anzeigen (optional)
//alert("Die Zeit ist vorbei.");
// Den Teilnehmer zur nächsten Seite weiterleiten
SoSciTools.submitPage();
}
// Countdown anzeigen
var date0 = new Date();
var timeout = date0.getTime() + %remain% * 1000;
function updateCountdown() {
// Zeit berechnen
var date = new Date();
var time = Math.ceil((timeout - date.getTime() - 50) / 1000); // Verbleibende Zeit in Sekunden
// Zeit anzeigen
var out = document.getElementById("remain");
if (!out) {

return;

}
while (out.lastChild) {

out.removeChild(out.lastChild);

}
var minutes = Math.floor(time / 60);
var seconds = String(time - 60 minutes);
if (seconds.length < 2) seconds = "0" + seconds;
var display = String(minutes) + ":" + seconds;
var displayNode = document.createTextNode(display);
out.appendChild(displayNode);
}
// Initialisierung der Weiterleitung
SoSciTools.attachEvent(window, "load", function(evt) {
// Weiter-Knopf ausblenden (optional)
SoSciTools.submitButtonsHide();
// Zusätzlicher Timer für die Aktualisierung des Countdowns
window.setInterval(updateCountdown, 1000);
updateCountdown();
// Timer für automatische Weiterleitung starten
window.setTimeout(weiter, %remain%
1000);
});
// -->

Und auf Seite 6 ist (wo das Problem ist):

PHP:

if (!isset($time0)) {
$time0 = time();
registerVariable($time0); // Die Variable $time0 auch nach Ende des PHP-Codes aufbewahren
}
// Prüfung, ob die Zeit schon abgelaufen ist
// (z.B. weil der Teilnehmer die Seite neu geladen hat)
$timer = 60; // Der Teilnehmer hat 1 Minute (60 Sekunden) Zeit zur Bearbeitung
if (time() >= $time0 + $timer) {
goToPage('next');
}
// Die verbleibende Zeit muss auch dem JavaScript-Code bekannt gemacht werden
$remain = $time0 + $timer - time();
replace('%remain%', 20);


HTML:


<!-- // Knopf zunächst ausblenden SoSciTools.submitButtonsHide(); // Nach Ablauf von 30 Sek = 30000 ms wieder einblenden window.setTimeout( SoSciTools.submitButtonsDisplay, 20000 ) // -->


<!-- // Funktion zur Weiterleitung function weiter() { // Eine Meldung anzeigen (optional) //alert("Die Zeit ist vorbei."); // Den Teilnehmer zur nächsten Seite weiterleiten SoSciTools.submitPage(); } // Initialisierung der Weiterleitung SoSciTools.attachEvent(window, "load", function(evt) { // Weiter-Knopf ausblenden (optional) SoSciTools.submitButtonsHide(); // Timer für automatische Weiterleitung starten window.setTimeout(weiter, %remain% * 1000); }); // -->

Verbleibende Zeit:


<!--
// Funktion zur Weiterleitung
function weiter() {
// Eine Meldung anzeigen (optional)
//alert("Die Zeit ist vorbei.");
// Den Teilnehmer zur nächsten Seite weiterleiten
SoSciTools.submitPage();
}
// Countdown anzeigen
var date0 = new Date();
var timeout = date0.getTime() + %remain% * 1000;
function updateCountdown() {
// Zeit berechnen
var date = new Date();
var time = Math.ceil((timeout - date.getTime() - 50) / 1000); // Verbleibende Zeit in Sekunden
// Zeit anzeigen
var out = document.getElementById("remain");
if (!out) {

return;

}
while (out.lastChild) {

out.removeChild(out.lastChild);

}
var minutes = Math.floor(time / 60);
var seconds = String(time - 60 minutes);
if (seconds.length < 2) seconds = "0" + seconds;
var display = String(minutes) + ":" + seconds;
var displayNode = document.createTextNode(display);
out.appendChild(displayNode);
}
// Initialisierung der Weiterleitung
SoSciTools.attachEvent(window, "load", function(evt) {
// Weiter-Knopf ausblenden (optional)
SoSciTools.submitButtonsHide();
// Zusätzlicher Timer für die Aktualisierung des Countdowns
window.setInterval(updateCountdown, 1000);
updateCountdown();
// Timer für automatische Weiterleitung starten
window.setTimeout(weiter, %remain%
1000);
});
// -->

closed with the note: Es liegen keine weiteren Informationen zu dem Problem vor, welche für eine hilfreiche Antwort erforderlich wären.
in SoSci Survey (dt.) by s145591 (110 points)
closed by SoSci Survey
Könnten Sie Ihre Frage bitte editieren, die Code-Blöcke markieren und dann auf {} klicken, damit sie als Code formatiert werden? Danke.

> Apple Geräte (Mac & Mobil) sowie Mobile Android Endgeräte zeigen einfach kein Bild und keine Seite an.

Bitte posten Sie auch einen Pretest-Link direkt (!) zu der betroffenen Fragebogen-Seite. Dann können wir prüfen, wo es hakt.
...