window.setTimeout
Anton
- javascript
Moin!
Folgender Befehler wird im IE genommen und im FF &co leider nicht:
window.setTimeout('alert();', 1);
Verstehe nicht ganz wo das Problem ist, bei window.setTimeout... ?!
Gruß
Anton
Hallo,
window.setTimeout('alert();', 1);
Verstehe nicht ganz wo das Problem ist, bei window.setTimeout... ?!
wohl eher beim leeren alert(); hast du mal versucht an alert() etwas zu übergeben was der browser dann anzeigen könnte? also alert("foo") zum Beispiel?
Grüße
Jeena Paradies
wohl eher beim leeren alert(); hast du mal versucht an alert() etwas zu übergeben was der browser dann anzeigen könnte? also alert("foo") zum Beispiel?
Ja, davon koennt ihr ausgehen. Denn ich möchte bestimmt nicht irgendwas alerten nach einiger Zeit, sondern eine Funktion aufrufen. Diese möchte ich euch aber ersparen... da können sich auch Fehler reinschleichen, wenn man etwas schnell zur Vereinfachung tippt. ;-)
setTimeout("alert('test');", 100);
klappt nicht
setTimeout("alert('test');", 10);
klappt.
setTimeout("alert('test');", 100);
klappt nicht
Was heißt das?
Struppi.
setTimeout("alert('test');", 100);
klappt nicht
Was heißt das?
Ehm, jo, es funktioniert nicht? Er führt den alert leider nicht aus.
Ich glaube es liegt dann doch an den Rahmenbedingungen, da dieser Befehl so in einer normalen HTML-Datei funktioniert.
Die ganze Geschichte funkioniert nicht (also er führ den alert nicht aus) bei einem body der contenteditable und designmode='on' hat.
Kann es damit irgendwas zu tun haben?
Gruß
Anton
setTimeout("alert('test');", 100);
klappt nicht
Was heißt das?
Ehm, jo, es funktioniert nicht? Er führt den alert leider nicht aus.
Ich glaube es liegt dann doch an den Rahmenbedingungen, da dieser Befehl so in einer normalen HTML-Datei funktioniert.
eben.
Die ganze Geschichte funkioniert nicht (also er führ den alert nicht aus) bei einem body der contenteditable und designmode='on' hat.
Kann es damit irgendwas zu tun haben?
Könntest du mal versuchen Fehlern nachzugehen und zu beschreiben und wenn du Hilfe möchtest, wäre es sinnvoll Minimal Beispiele, die dein Problem demonstrieren, zu zeigen.
Struppi.
Die ganze Geschichte funkioniert nicht (also er führ den alert nicht aus) bei einem body der contenteditable und designmode='on' hat.
Kann es damit irgendwas zu tun haben?
Jo frage ich mich auch, eignetlich nicht, aber es ist wohl so offensichtlich.
Könntest du mal versuchen Fehlern nachzugehen und zu beschreiben und wenn du Hilfe möchtest, wäre es sinnvoll Minimal Beispiele, die dein Problem demonstrieren, zu zeigen.
Den Fehler kann ich leider nicht nachgehen, aber mein Beispiel einfach posten:
function setSTRG(Ereignis ) {
if (!Ereignis) Ereignis = window.event;
if (Ereignis.which) {
Tastencode = Ereignis.which;
}
else if (Ereignis.keyCode) {
Tastencode = Ereignis.keyCode;
}
if (Tastencode==17){
lastTastenCode=17;
}
else if (lastTastenCode!=17) {
lastTastenCode = 0;
}
}
function unsetSTRG(Ereignis) {
if (!Ereignis) Ereignis = window.event;
if (Ereignis.which) {
Tastencode = Ereignis.which;
}
else if (Ereignis.keyCode) {
Tastencode = Ereignis.keyCode;
}
if (Tastencode==17) {
setTimeout('alert("NED STRG")';, 1000);
}
}
<body onkeyup="unsetSTRG();" onkeydown="javascript:setSTRG();" bgcolor='#FDF1C7' contenteditable onLoad="document.designMode = 'on';" style = "' + myStyle + '">'
if(document.addEventListener) // für Moz, reicht net für IE
{
document.addEventListener("keyup", unsetSTRG, true);
document.addEventListener("keydown", setSTRG, true);
}
Das gepostete ist der meiste Code von der HTML-Seite die in ein IFRAME "projeziert" wird.
Seht ihr da nen Grund für das Verhalten von Mozilla?
Hallo Anton!»»
Die ganze Geschichte funkioniert nicht (also er führ den alert nicht aus) bei einem body der contenteditable und designmode='on' hat.
Kann es damit irgendwas zu tun haben?
if (Tastencode==17) {
setTimeout('alert("NED STRG")';, 1000);
}
Seht ihr da nen Grund für das Verhalten von Mozilla?
Vielleicht würdest Du uns, wenn Du Fragen stellst, einfach GENAU den Code liefern, den Deine Seite enthält, oder uns einfach einen URL zu den _vollständig_ kopierten Seiten liefern? Denn das,w as Du hier geliefert hast, kann auch im IE nicht funktionieren, da jeder Browser in der Zeile des SetTimeouts ein ")" erwarten würde.
Deine Fehlerbeschreibungen gleichen dem Blick in die Glaskugel.
Schönen Gruß
Afra
Vielleicht würdest Du uns, wenn Du Fragen stellst, einfach GENAU den Code liefern, den Deine Seite enthält, oder uns einfach einen URL zu den _vollständig_ kopierten Seiten liefern? Denn das,w as Du hier geliefert hast, kann auch im IE nicht funktionieren, da jeder Browser in der Zeile des SetTimeouts ein ")" erwarten würde.
Da hab ich mich beim verändern vertippt, da ich ja nicht unbedingt etwas alerten will, sondern eine andere Funktion aufrufen. Jedoch wenn der Alert schon nicht geht, liegt der Fehler nicht in der Funktion die ich benutze.Wenn es eine Fehlermeldung gäbe, würde ich vermutlich nicht mal diesen Thread erstellt haben.
Also der Tippfehler ist nicht der Fehler, auch mit:
setTimeout('alert("NED STRG");', 1000);
funktioniert es nicht.
Gruß
Anton
Hi,
Da hab ich mich beim verändern vertippt, da ich ja nicht unbedingt etwas alerten will, sondern eine andere Funktion aufrufen. Jedoch wenn der Alert schon nicht geht, liegt der Fehler nicht in der Funktion die ich benutze.Wenn es eine Fehlermeldung gäbe, würde ich vermutlich nicht mal diesen Thread erstellt haben.
Nur mal so eine Idee (nicht nachgeprüft).
Ein Alert ist eine Art Popup.
Wenn zwischen dem Klick des Users und dem tatsächlichen Erzeugen des Popups (alert) eine gewisse Zeitspanne liegt, könnte man es so sehen, daß das Popup ein nicht vom User angefordertes ist (es gibt keinen direkten Zusammenhang zwischen Useraktion und Popup-Erzeugung).
Das Popup könnte also, weil nicht angefordert, vom Popupblocker blockiert werden.
Mach mal ne andere Aktion, z.B. document.body.style.backgroundColor = "fuchsia" oder ähnliches.
cu,
Andreas
Hallo Anton!
Wenn Du dich mit den Grundlagen von JavaScript auseinander gesetzt hättest würdest Du feststellen, dass alert eine Exception in JavaScript auslöst, da Du einen zwingend notwendigen Übergabewert nicht angegeben hast.
Der IE missinterpretiert leider eine Nichtangabe als _irgendetwas_.
Schönen Gruß
Afra
Schoen zu wissen.
Ich weiss ja nicht wie du Programmiersprachen lernst, aber bei mir lern ich problembezogen, d.h. ich setze mich mit Sachen nur auseinander, wenn ich sie brauche...
Und da das alert() nur ein Platzhalter für eine andere Funktion ist, und der Mozilla keine Exception wirft, hab ich darauf auch nicht geachtet.
Ansonsten klappt das timeout mit höheren Werten trotzdem nicht.
Gruß
Anton
hi,
Ich weiss ja nicht wie du Programmiersprachen lernst, aber bei mir lern ich problembezogen, d.h. ich setze mich mit Sachen nur auseinander, wenn ich sie brauche...
Und postest dann unter verschiedenen Nicks wie Anton oder FireGlow, damit das nichtg so auffällt, für wie viel Trivialkram du fragst ...?
gruß,
wahsaga
Und postest dann unter verschiedenen Nicks wie Anton oder FireGlow, damit das nichtg so auffällt, für wie viel Trivialkram du fragst ...?
Noe das eine ist mein Nick und das andere mein richtiger Name, wenn ich das verschleiern wollte, würde ich mich jedes mal neu ins Internet verbinden , und immer andere Namen benutzen?!
Gruß
Anton
Hallo Leute
Wenn wir schon beim Thema sind habe ich auch eine Frage. Ich möchte aus einer Methode eines Objektes ein Timeout setzen, welches dieselbe Methode wieder aufruft. Das 'Problem' - oder besser gesagt die Unschönheit - ist nun, dass ich beim Aufruf von setTimeout() den Variabelnnamen der Instanz der Klasse kennen muss:
// Klasse
function CMeineKlasse() {
this.Timer = null;
this.update = CMeineKlasse_update;
this.update();
}
// Methode
function CMeineKlasse_update() {
if (this.Timer) {
window.clearTimeout(this.Timer);
}
// 1x pro Minute aufrufen
// Geht das auch ohne 'MeinObjekt'?
this.Timer = window.setTimeout('MeinObjekt.update();', 60000);
}
var MeinObjekt = new CMeineKlasse();
Ich habe es mit Funktionspointern versucht, jedoch ging das leider nicht. Muss ich diese Methode wirklich aus der Klasse nehmen damit ich die Abhängigkeit vom Variablennamen los werde? Oder gibt es einen besseren Weg?
Gruss & Dank
Tom2
PS: Eigentlich verwende ich setInterval, aber diese Funktionen werden auf dieselbe Art verwendet.
Ich habe es mit Funktionspointern versucht, jedoch ging das leider nicht. Muss ich diese Methode wirklich aus der Klasse nehmen damit ich die Abhängigkeit vom Variablennamen los werde? Oder gibt es einen besseren Weg?
Hatten wir alles schon, die Suchbegriffe sind: this setimeout und javascript
Ergebniss z.b. http://forum.de.selfhtml.org/archiv/2006/1/t122012/#m784672
Struppi.
Hallo
Hatten wir alles schon, die Suchbegriffe sind: this setimeout und javascript
Darauf hätte ich auch selbst kommen können...
Ergebniss z.b. http://forum.de.selfhtml.org/archiv/2006/1/t122012/#m784672
Ich war nah dran: Anstatt mir einer in einer Variablen gespeicherten Function Expression habe ich's mit einer Methode versucht, was nicht geklappt hat. Danke für den Hinweis!
Gruss
Tom2
Hallo Tom2 (der authentifizierte),
Oder gibt es einen besseren Weg?
Wenn ich es korrekt verstanden habe, hast Du das selbe Problem, wie ich einst. wahsaga hatte dafür eine Lösung, die Dir weiterhelfen sollte.
Mit freundlichem Gruß
Micha