Frage

Ich versuche, ein Skript zu dem beggin meiner XBL-Datei hinzufügen, aber auch der folgende Test läuft nicht, keine Ahnung, warum?

<bindings xmlns="http://www.mozilla.org/xbl"
       xmlns:xbl="http://www.mozilla.org/xbl"
       xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

 <script language="javascript" type="text/javascript"><![CDATA[
     while(true) {
      dump("OK");
     }
 ]]></script>

</bindings>

- update

Diese Endlos-Schleife ist becouse ich ein Stück Code will am Laufen zu halten. Es ist eine Kommunikation mit einem eingebetteten System.

War es hilfreich?

Lösung

Es gibt kein Skript Element in XBL, die Dokumentation ist falsch:

https://bugzilla.mozilla.org/show_bug.cgi?id=58757

Andere Tipps

Keine Ahnung über XBL, aber Ihr Code hat Endlosschleife ohne Stoppbedingung. So etwas JavaScript abstürzt.

In Stoppzustand oder „fail safe“ wie nach 100.000 Wiederholungen zu brechen und es wird den Browser nicht einfrieren.

Ich habe auch keine Kenntnisse über XBL, aber ich denke auch, dass die Art und Weise Sie das geschrieben haben, wird es um die Ausführung zu blockieren. Im Moment läuft alles synchronisiert Bedeutung, dass der Dolmetscher am while Ende Warte aufhören wird, sie zu beenden. Jetzt, da es eine unendliche Schleife ist, wird dies nie passieren. Was Sie tun können, ist die folgende:

window.setTimeout(function() {
    while(true) {
        dump("OK");
    }
}, 1);

So können Sie Ihre while in einer asynchronen Art und Weise zu starten. Dies sollte nicht blockierend sein. Sagen Sie mir, ob es funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top