dom - 如何在 Dart 中判断 DOM 何时准备就绪?

标签 dom dart

我想在页面准备好后获取有关某些 DOM 元素的一些信息,但我还没有弄清楚如何判断这是什么时候。我试过使用 document.on.contentLoadeddocument.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();
}

最佳答案

您无需关心 DOM 是否已加载 - Darts main 仅在 DOM 完全加载时启动。

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

“Dart 代码仅在页面被解析后执行。Dart 程序员可以假设 DOM 已完全加载。”

关于dom - 如何在 Dart 中判断 DOM 何时准备就绪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8435519/

相关文章:

javascript - 关于带有多个选择器的 querySelector()

javascript - 当我将子项从一个父项移动/复制到另一个父项时,如何重新计算显示?

flutter - Flutter Silver小部件显示一个RenderViewport预期为RenderSliv​​er类型的子代,但收到了RenderErrorBox类型的子代

android - flutter中有支持rowspan和colspan的widget吗?

html - 无法单击位于 <li 元素内的链接

javascript - jQuery:检查元素是否存在(可以通过 ajax 添加)

reflection - 如何使用私有(private)构造函数反射(reflect)导入包中的类?

dart - 通过 'pub serve'启动dart代码时,是否可以正常工作?

stream - 如何制作自己的信息流

javascript - 替换元素中出现的所有字符串