устаревшая версия dojo 1.1 — dojo.addOnLoad срабатывает, когда материал dijit не готов

Я вынужден использовать додзё 1.1 на сайте.

На странице используются диджит-виджеты декларативным образом, например:

<select dojoType="dijit.form.FilteringSelect">...</select>

Я хочу кое-что сделать с виджетами после загрузки, но если я это сделаю:

dojo.addOnLoad(function() {
  dijit.registry.forEach(function(widget, idx, hash) {
    alert('Hello! I am a widget!');
  });
});

оповещения не появляются, так как этот код выполняется перед "оцифровкой" страницы, как я выяснил при отладке.

Есть ли способ выполнить мой код, когда страница действительно, действительно готова?


person giorgian    schedule 18.07.2011    source источник


Ответы (1)


На всякий случай, если мне (или кому-то еще) это понадобится снова, вот как я решил это:

dojo.addOnLoad(function() {
  dojo._loaders.push(someFunction);
});

Кажется, это гарантирует, что someFunction будет выполняться после всех других обратных вызовов, включая обратные вызовы dijit.

person giorgian    schedule 19.07.2011