FF Fehlerkomsole per JS aufrufen?
Don P
- javascript
Hallo,
Frage: Kann man in FF per JS die Fehlerkonsole in den Vordergrund bringen, so dass das atuelle Fenster den Fokus verliert?
Antwort: Ja.
Frage: Aber wie?
Antwort: Per Zufall...
In meinem Script wird eine Liste gescrollt, solange man die Maus über einem Button gedrückt hält. Funktioniert eigentlich, aber die leere (!) Fehlerkonsole, die im Hintergrund geöffnet ist, drängt sich dabei jedes mal in den Vordergrund und verdeckt u.U. den Mauscursor und die scrollende Liste.
Was soll das? Hat jemand eine Idee, woran das liegen könnte?
Bitte fragt nicht nach dem ganzen Code, den wollt ihr nicht wirklich sehen, aber das entscheidende Schnipsel ist folgendes:
//[...]
//in einem Objekt, das als 'ctrl' auf sich selbst verweist (g ist window):
this.permScroll = function(){g.clearInterval(ctrl.isScrolled); ctrl.isScrolled=g.setInterval(ctrl.scrollElt.onclick,20);};
this.stopScroll = function(){g.clearInterval(ctrl.isScrolled);};
this.startScroll = function(elt){this.scrollElt=elt; this.isScrolled=g.setInterval(this.permScroll,500);};
}
},
// im selben Objekt, die Methoden kennen this.ctrl:
toLeft: { title: '1 Schritt zurück',
// der Event onPermChange ändert die Liste gemäß tbl.p.i :
onclick: function () { this.blur(); tbl.p.i = Math.min(tbl.p.i-1, tbl.p.length-1); ef.fireEvents('onPermChange');},
onmousedown: function() { this.ctrl.stopScroll(); this.ctrl.startScroll(this); },
onmouseup: function() { this.ctrl.stopScroll(); }
},
toRight: { title: '1 Schritt weiter',
// der Event onPermChange ändert die Liste gemäß tbl.p.i :
onclick: function () { this.blur(); tbl.p.i = Math.min(tbl.p.i+1, tbl.p.length-1); ef.fireEvents('onPermChange');},
onmousedown: function() { this.ctrl.stopScroll(); this.ctrl.startScroll(this); },
onmouseup: function() { this.ctrl.stopScroll(); }
},
//[...]
onmousedown eines Buttons startet also startScroll, welches nach 1/2 Sekunde permScroll startet, das in Interallen die onclick-Funktion des Buttons (toLeft oder toRight) aufruft, die das eigentliche Scrollen bewirkt.
Wie gesagt: Es funktioniert alles, bis auf die lästige Sache mit der Fehlerkonsole. BTW: Das Dokument ist Valide gemäß W3C und das JS auch ok gemäß JSlint.
Gruß, Don P
Hi,
Bitte fragt nicht nach dem ganzen Code, den wollt ihr nicht wirklich sehen, aber das entscheidende Schnipsel ist folgendes:
Bitte frag (mich) nicht, wenn du kein Online-Beispiel bereitstellen willst, an dem das ganze sofort nachvollziehbar ist.
Und Browserversion und OS zu nennen, kann auch nicht schaden.
MfG ChrisB
Hallo
In meinem Script wird eine Liste gescrollt, solange man die Maus über einem Button gedrückt hält. Funktioniert eigentlich, aber die leere (!) Fehlerkonsole, die im Hintergrund geöffnet ist, drängt sich dabei jedes mal in den Vordergrund und verdeckt u.U. den Mauscursor und die scrollende Liste.
Die FF-Fehlerkonsole gibt nicht nur Fehler aus, sondern auch Warnungen und Mitteilungen in jeweils eigenen Tabs. Alle (zeitlich sortierten) Meldungen erreicht man über den Tab "Alle". Schon mal da reingeschaut?
Tschö, Auge
Hallo,
Die FF-Fehlerkonsole gibt nicht nur Fehler aus, sondern auch Warnungen und Mitteilungen in jeweils eigenen Tabs. Alle (zeitlich sortierten) Meldungen erreicht man über den Tab "Alle". Schon mal da reingeschaut?
Ja klar. Gähnende Leere auch unter "Alle".
OS: WinXP SP3
FF: 3.5.3 (jetzt wird anscheinend gerade auf 3.5.5 aktualisiert)
Gruß, Don P
Frage: Kann man in FF per JS die Fehlerkonsole in den Vordergrund bringen, so dass das atuelle Fenster den Fokus verliert?
Das wäre mir neu.
Frage: Aber wie?
Antwort: Per Zufall...
Aha :-)
// der Event onPermChange ändert die Liste gemäß tbl.p.i :
onclick: function () { this.blur(); tbl.p.i = Math.min(tbl.p.i-1, tbl.p.length-1); ef.fireEvents('onPermChange');},
Kann es sein, dass hier this == window ist?
Struppi.
Kann es sein, dass hier this == window ist?
Ich kann das von dir beschriebene Verhalten übrigens reproduzieren, wenn ich das in die URL Zeile eingeben: javascript:this.blur();
Struppi.
Hallo,
// der Event onPermChange ändert die Liste gemäß tbl.p.i :
onclick: function () { this.blur(); tbl.p.i = Math.min(tbl.p.i-1, tbl.p.length-1); ef.fireEvents('onPermChange');},Kann es sein, dass hier this == window ist?
Bingo!
...und so verliert das Fenster mit window.blur() den Fokus.
Die onclick-Methode muss ich also mit call
aufrufen, dann sollte es klappen...
Vielen Dank! Nach diesem Fehler hätte ich lange suchen müssen.
Gruß, Don P