1

我试图在我的 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>

- 更新

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

4

3 回答 3

1

不知道 XBL,但你的代码有无限循环,没有停止条件。这样的事情就是让 JavaScript 崩溃。

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

于 2010-11-16T14:12:01.423 回答
0

我也对XBL一无所知,但我也认为你写这个的方式,它会阻止执行。目前一切运行同步的意思是,解释器将在while最后停止等待它结束。现在,因为它是一个无限循环,所以这永远不会发生。您可以执行以下操作:

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

这样你就可以while以一种异步的方式开始你的工作。这应该是非阻塞的。告诉我,如果它有效。

于 2010-11-16T16:16:45.113 回答
0

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

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

于 2010-11-16T16:33:53.927 回答