Warum dieses Skript nicht läuft?
-
11-10-2019 - |
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.
Lösung
Es gibt kein Skript Element in XBL, die Dokumentation ist falsch:
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.