为什么这个脚本没有运行?

时间:2010-11-16 14:06:20

标签: javascript xbl

我正在尝试将脚本添加到我的XBL文件的开头,但即使以下测试也没有运行,任何想法为什么?

<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>

- 更新

这个无限循环是因为我想要一段代码继续运行。这是与嵌入式系统的通信。

3 个答案:

答案 0 :(得分:1)

Dunno关于XBL,但你的代码有无限循环而没有停止条件。这样的事情正在崩溃JavaScript。

添加停止条件或“失败安全”,例如在100,000次迭代后中断,它不会冻结浏览器。

答案 1 :(得分:0)

我也不了解XBL,但我也认为你写这个的方式,它会阻止执行。目前,一切都运行同步意义,解释器将停在while端,等待它结束。现在,因为它是一个无限循环,所以永远不会发生这种情况。你能做的是以下几点:

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

这样您就可以以异步方式启动while。这应该是非阻塞的。告诉我,它是否有效。

答案 2 :(得分:0)

XBL中没有脚本元素,文档是假的:

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