2010-12-13 2 views
0

У меня есть сценарий, который я добавляю к моему 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 метод (в сценарии, который не загружен во время), чтобы просто написать на экране.

Итак, любая идея, как я могу заставить xul-файл ждать, пока мой скрипт не будет полностью загружен?

+0

Серьезно, если ваш скрипт занимает так много времени, чтобы загрузить, то вы просто не можете использовать свои функции до тех пор, пока не будет загружен , Вы не хотите замораживать весь браузер, чтобы загрузить ваш скрипт, не так ли? –

+0

@Felix Kling на самом деле, это настольное приложение, поэтому нет проблем с временем загрузки. –

+0

К сожалению, тогда. Для меня XUL настолько тесно связан с Firefox, я иногда забываю, что вы можете использовать его самостоятельно;) Nevermind! –

ответ

0

решаемые его с переменной «window.scriptsLoaded» и петлей на моем конструктор класса надеющимся ..

-update

также, он не работает с while(!window.scriptsLoaded), мне нужно использование:

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

так что window.scriptsLoaded может быть обновлен каждый раз, когда я его проверю. Я не понимаю, почему.

-update

На самом деле, использовать «OnLoad» показал, сам по себе является лучшим решением ..

Смежные вопросы