0 votes
in SoSci Survey (dt.) by s114983 (205 points)
edited by s114983

Hallo liebes Support Team,

für eine Studie würden wir auf einer Seite gerne einen zufällig ausgewählten Buchstaben für eine Sekunde anzeigen. Dieser soll anschließend ausgeblendet werden, worauf ein neuer zufällig ausgewählter Buchstabe folgen soll. Dies würden wir gerne für 100 Buchstaben wiederholen. Die Buchstaben selbst müssen nicht gespeichert werden.
Weiß jemand, wie man dies in html oder JavaScript programmieren kann? Bisherige Versuche (z.B. auf Basis folgender Website: https://stackoverflow.com/questions/914951/show-and-hide-divs-at-a-specific-time-interval-using-jquery) haben leider aufgrund mangelnder Programmierungskenntnisse nicht funktioniert...

EDIT:
Die Weiterleitung auf eine neue Seite nach 100 Sekunden funktioniert problemlos. Nur leider werden mit dem folgenden Code keine Buchstaben auf der Seite angezeigt - die Seite bleibt leer.

Versuch Nummer 1: Pre-Test

<script type="text/javascript">

<!--

var myVar = setInterval(getRandomUppercaseChar, 1000);


function getRandomUppercaseChar() {
    var r = Math.floor(Math.random() * 26);
    return String.fromCharCode(65 + r);

}


// -->
</script>

und Versuch Nummer 2: Pre-Test

  <script type="text/javascript">

<!--

var myVar = setInterval(getRandomItem, 1000);


function getRandomItem(arr) {

    // get random index value
    const randomIndex = Math.floor(Math.random() * arr.length);

    // get random item
    const item = arr[randomIndex];

    return item;
}

const arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];

const result = getRandomItem(array);
console.log(result);

// -->
</script>

2 Answers

0 votes
by SoSci Survey (327k points)

Ganz ohne ein wenig Programmierung werden Sie das nicht lösen können - Sonderwünsche brauchen ein wenig Sonderaufwand. Sie sollten auf alle Fälle schonmal die JavaScrpt-Fehlerkonsole in Ihrem Browser finden. Diese verrät Ihnen, warum etwas nicht funktioniert.

Bitte sehen Sie sich hier mal die Grundlagen zum Ein- und Ausblenden an:
Timer: Weiter-Knopf nach bestimmter Zeit einblenden

In Ihrem Fall wäre es vermutlich sinnvoll, dass man nicht 100 Buchstaben auf den Bildschirm legt und diese dann alle nacheinander einblendet, sondern dass man einfach per JavaScript den Inhalt des HTML-Elements ändert, welches den Buchstaben anzeigt. Eine kleine Herausforderungen, die dann noch on-top kommt: Vermutlich möchten Sie nicht, dass derselbe Buchstabe zweimal direkt hintereinander angezeigt wird.

Probieren Sie mal, wie weit Sie kommen. Posten Sie hier im Online-Support anschließend Ihren Code und einen Pretest-Link direkt (!) zur betroffenen Seite im Fragebogen, und dann helfe ich gerne wieder weiter.

by s114983 (205 points)
Vielen Dank für die schnelle Antwort! Ich habe unsere entsprechenden Versuche und die Links oben in der Frage ergänzt. Es dürften sogar zwei gleiche Buchstaben hintereinander angezeigt werden. Wir werden weiter an dem Code arbeiten, um das Problem zu lösen, und freuen uns währenddessen über Ihre Hilfestellung!
Vielen Dank und freundliche Grüße
Charlotte
0 votes
by SoSci Survey (327k points)

Oka, ich beginne mal mit dem Script Nr. 1. Das zieht zwar jede Sekunde einen Buchstaben, die Funktion getRandomUppercaseChar() liefert einen Buchstaben zurück. Aber danach passiert nichts damit.

Eine Möglichkeit, den Buchstaben anzuzeigen, besteht darin, dass Sie ihn in ein HTML-Element schreiben. Legen SIe dafür ein HTML-Element (z.B. ein <div>) auf der Fragebogen-Seite an. Lesen Sie dann ein wenig zu getElementById() und innerHTML.

Der Code 2 hat im Prinzip dasselbe Problem. Zumindest bei dem ersten Aufruf sollten Sie etwas in der Fehlerkonsole des Browsers sehen (die haben Sie inzwischen gefunden?). Aber auch hier wird nur ein Buchstabe gewürfelt, danach wird er aber nicht auf die Seite geschrieben.

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

...