Как определить, когда DOM готов в Dart? - PullRequest
4 голосов
/ 08 декабря 2011

Я хочу получить некоторую информацию о некоторых элементах DOM после того, как страница будет готова, но я не понял, как определить, когда это произойдет. Я пытался использовать document.on.contentLoaded и document.on.readyStateChange, но ни один из них не работает. В следующем коде onContentLoaded() и onReadyChanged() никогда не вызывают.

class WhiteTrace {

  WhiteTrace() {    
  }

  void onContentLoaded(Event e) {
    print("onContentLoaded");
    // This never gets called 
  }

  void onReady() {
    print("onReady");
    // Do stuff
  }

  void onReadyChanged(Event e) {
    print("onReadyStateChanged");
    // This never gets called
    if (document.readyState == "complete") {
      onReady();
      document.on.readyStateChange.remove(onReadyChanged);
    }
  }

  void onResize(Event e) {
    // Do stuff
  }

  void run() {
    write("Hello World!");
    document.on.contentLoaded.add(onContentLoaded);

    window.on.resize.add(onResize);

    document.on.readyStateChange.add(onReadyChanged); 
    print("readyState: " + document.readyState);
    if (document.readyState == "complete") {
      document.on.readyStateChange.remove(onReadyChanged);
      onReady();
    }
  }

  void write(String message) {
    // the HTML library defines a global "document" variable
    document.query('#status').innerHTML = message;
  }
}

void main() {
  new WhiteTrace().run();
}

1 Ответ

7 голосов
/ 08 декабря 2011

Вам не нужно заботиться о том, загружен ли DOM - главный дартс запускается только после полной загрузки DOM.

http://www.dartlang.org/articles/embedding-in-html/

"Код Dart выполняется только после анализа страницы. Программисты Dart могут предположить, что DOM полностью загружен."

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...