代码之家  ›  专栏  ›  技术社区  ›  Student

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

  •  1
  • Student  · 技术社区  · 14 年前

    我试图在我的XBL文件的beggin中添加一个脚本,但是即使下面的测试也没有运行,知道为什么吗?

    <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 回复  |  直到 14 年前
        1
  •  0
  •   Paul Butcher    14 年前

    XBL中没有脚本元素,文档为false:

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

        2
  •  1
  •   Shadow Wizard    14 年前

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

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

        3
  •  0
  •   philgiese    14 年前

    我也不知道XBL,但我也认为你写这篇文章的方式,会阻碍执行。此时,所有内容都同步运行,这意味着解释器将在 while 结束等待它结束。现在,因为它是一个无限循环,这永远不会发生。你可以做的是:

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

    从这里开始 虽然 以一种异步的方式。这应该是非阻塞的。告诉我,如果有用的话。

    推荐文章