0 votes
in SoSci Survey (dt.) by s145591 (110 points)
closed by SoSci Survey

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.
by SoSci Survey (304k points)
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.

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

...