如何在加载xul文件之前完全执行代码?

时间:2010-12-13 11:25:47

标签: javascript load xul

我有一个脚本可以添加到我的xul文件中,例如:

<?xml version="1.0" encoding="UTF-8"?>

<!-- Bindings -->
<?xml-stylesheet href="chrome://test/content/bindings.css" type="text/css"?>

<mywindow id="myWindowID" width="800" height="600"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <script type="application/x-javascript" src="chrome://greenfox/content/jquery-1.4.4.min.js" />

</mywindow>

mywindow构造函数(在绑定时)我使用了我的脚本函数,称为'print'。

问题在于,有时候,我的脚本在使用之前没有加载得很快,而且我收到了消息

  

我们无法打印或打印   预览此页面。

..与打印机使用情况有关。

请注意我没有尝试使用打印机,我正在尝试使用自己的print方法(在未及时加载的脚本中)只需在屏幕上书写。

那么,任何想法如何让xul文件等到我的脚本完全加载?

1 个答案:

答案 0 :(得分:0)

使用变量“window.scriptsLoaded”解决它,并在我的类构造函数上循环等待..

<强> -update

另外,它不能与while(!window.scriptsLoaded)一起使用,我需要使用:

function loadScripts() {
    if (!window.scriptsLoaded)
        setTimeout(loadScripts, 1)
    else
        loaded();
}

所以每次检查时都会更新window.scriptsLoaded。我真的不明白为什么。

<强> -update

实际上,使用“onload”显示自己是一个更好的解决方案..