• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

JavaScript - Einbindung in Umfragesoftware Questback/Unipark

ASchilling

New member
Hallo zusammen,

Eigentlich wollte ich einen Countdown in meinen Fragebogen einbauen, der nach Klicken auf einen Link im Fragebogen aufpoppt und nach zehn Minuten ein lautes Klingeln von sich gibt. Dazu hatte ich auch wunderbare JavaScript-Vorlagen gefunden, die ich auch prompt in Unipark eingebettet habe. Leider funktionierte keiner der Skripte!

Unipark bzw. Questback ist ein Umfrageportal, auf dem man eigene Fragebögen online erstellen kann. Es ist auf Unipark auch vorgesehen, dass man JavaScripts in den HTML-Code implementieren kann.

Um Herr über das Problem zu werden, beschäftige ich mich gerade mit JavaScript und versuchte in einem Testfragebogen JavaScripts zu implementieren, aber keines funktioniert, insbesondere die nicht, die mit einem Popup verbunden sind (und das obwohl der Popup-Blocker komplett deaktiviert ist)! (Kleinigkeit, wie das Verwenden von ' anstatt " habe ich beachtet.)


Ich bitte dringend um Hilfe, da unsere Umfrage am 10. März startet und wir unbedingt diesen Timer/Countdown zum Laufen bringen müssen.

Im Anhang findet ihr eine JavaScript-Vorlage, die ich versucht habe einzubauen.

Vielen Dank schon im Voraus!
Albert
 

Anhänge

  • JavaScript Timer.txt
    965 Bytes · Aufrufe: 5
Wie hast du denn den Code genua eingebaut / verwendet? Steht etwas in der Fehlerkonsole?

PS: window.setInterval() ist nicht besonders akurat bei der Zeit - das können gerne mal ein paar Hundert Millisekunden mehr sein, als man angegeben hat. Zeiten misst man in JS mit dem Date-Objekt.
PPS: ' und " sind in JS komplett äquivalent...
 
Danke für die Antwort.

Ich habe noch die JavaScript-Klammer eingefügt:

<script type="text/javascript">
<!--
...
//-->
</script>

Bei diesem Umfrageportal kann man direkt in den HTML-Code der jeweiligen Frageseite hineinschreiben. D.h. es müsste eigentlich korrekt in den HTML-Code eingebungen sein.

Und die Unterscheidung von ' und " ist nur wegen des Umfrageportals notwendig. Keine Ahnung wieso.

Danke für die Hinweise wegen der zeitlichen Ungenauigkeit.
Eine Idee woran es liegen könnte, dass das JavaScript nicht funktioniert?
 
Alles klar, aber an sich dürfte es nicht an der langen Version liegen bzw. eigentlich müsste der Code funktionieren oder?
 
So wie du den Code gezeigt hast, tut der einfach nichst... du Deklarierst einen Konstruktor, erstellst aber dann keine Instanz.
 
Hallo zusammen, hallo kkapsner,

Es ist mir nun endlich gelungen einen funktionierenden Timer zu erstellen. Er befindet sich im Anhang.

Was mir noch fehlt, ist eine Einbettung in HTML, bei der der Timer als Popup erscheint, sobald der Nutzer auf einen bestimmten Link klickt und es soll auch eine Alarmglocke klingen, sobald die Zeit abgelaufen ist.

Es wäre klasse, wenn ihr mir dabei noch helfen könntet!
 

Anhänge

  • Timer 2.txt
    1,6 KB · Aufrufe: 11
Ein Countdown mit
Code:
window.setTimeout();
ist ziemlich ungenau!

Den Alarmton kannst du mit
Code:
var alarm = new Audio('filename.mp3');
alarm.play();
einbinden und abspielen lassen.
 
Vielen Dank für die Antwort schon einmal.
Wo genau muss ich denn den Alarmton einbinden?
Ich habe es jetzt bei:
...
HTML:
 // Falls der Countdown noch nicht zurückgezählt ist
  if(time > 0)
  {
    //Countdown-Funktion erneut aufrufen
    //diesmal mit einer Sekunde weniger
    window.setTimeout('countdown('+ --time+',\''+id+'\')',1000);
  }
  else
  {
    //führe eine funktion aus oder refresh die seite
    //dieser Teil hier wird genau einmal ausgeführt und zwar
    //wenn die Zeit um ist.
    strZeit = "Fertig";
var alarm = new Audio('Internetadresse des Alarms.../alarm.mp3');
alarm.play();
  }
  // Ausgabestring in Tag mit id="id" schreiben
  document.getElementById(id).innerHTML = strZeit;
}
...
ausprobiert. Allerdings kommt nach Ablauf der Zeit nur eine Fehlermeldung. Fehlt noch etwas?
 
Zuletzt bearbeitet von einem Moderator:
Ich hab' ein paar Anmerkungen zum Code:
1. du hast da lauter unnötige globale Variablen, die dir extrem leicht einen schwer nachvollziehbaren Fehler erzeugen können. Mach' daraus lokale Variablen.
2. das language-Attribut ist noch mehr veraltet als type... lass' das komplett weg.
3. du willst nicht wirklich den Mosaic-Browser unterstützen, oder? Nimm' die HTML-Kommentare aus dem <script> raus.
4. die Variable t ist komplett überflüssig - da kannst du auch immer time nehmen.
5. die Genauigkeit von window.setTimeout() hat ja schon Julian angesprochen.
6. window.setTimeout() sollte man keinen String als Parameter übergeben, sondern eine Funktionreferenz - ist sicherere, weniger fehleranfällig und schneller:
Code:
 window.setTimeout(function(){
 	countdown(time - 1, id);
 }, 1000);
7. du solltest auf jeden Fall eine DocType verwenden.
 
Hallo,
ich habe ein ähnliches Problem mit der gleichen Software (Unipark).
Ich habe einen Countdown erstellt, der die Sekunden abzählt bis 0.
Bis dahin soll die Person eine Frage beantworten. Nun möchte ich, dass nach Ablauf des Countdowns die Seite automatisch abschickt wird und sich die nächste Seite mit der nächsten Frage und erneutem Countdown öffnet.
Hat schon mal jemand mit Unipark gearbeitet und kann mir helfen?

In einem anderen Forum, habe ich gelesen, dass der Befehl

HTML:
<script language="JavaScript">
<!--
init_auto_post(180);
-->
</script>

genau dies bewirken soll. Allerdings macht der bei mir nichts.

LG
 
Zuletzt bearbeitet von einem Moderator:
Steht etwas in der Fehlerkonsole?
Wie sieht die Funktion init_auto_post() aus? Zeig bitte mal mehr Code!


<script language="JavaScript">
<!--
init_auto_post(180);
-->
</script>
Möchtest du wirklich noch den Netscape 1.x unterstützen? Das Auskommentieren innerhalb des Skript-Tags ist extrem unnötig. Und das language-Attribut ist auch veraltet.
Viel kürzer und aktuell ist einfach:
HTML:
<script>init_auto_post(180);</script>

PS: setze JavaScript-Code bitte in Zukunft hier im Forum immer zwischen [code] und [/code]!
 
Vielen Dank für die schnelle Antwort!
Ich bin ein völliger Anfänger was JavaScript angeht.
Die Seite hat eine graphische Oberfläche. Normalerweise kann ich durch Direktmanipulation oder eine Menüauswahl Einstellungen vornehmen.
Da, ich aber bei der Software eine spezielle Einstellung vorgenommen habe, muss ich nun leider auch viele Dinge selbst in JavaScript programmieren.
Die Methode, die ich angegeben habe ist wohl veraltet (hab sie aus einem Forum aus dem Jahr 2009).

Wo könnte ich nachschauen, wie die Methode nun definiert ist? Hilft mir eventuell der Quellcode der Seite weiter?
 
Als ersten musst du prüfen, ob sie überhaupt definiert ist. Vielleicht ist die Methode so veraltet, dass sie gar nicht mehr existiert.

Wenn sie es nicht ist, wird dein Code oben einen Fehler in der Fehlerkonsole werfen.
 
Zurück
Oben