ページの準備が整った後、いくつかのDOM要素についての情報を得たいと思っていますが、これはいつどのようになっているのかわかりません。私はdocument.on.contentLoaded
とdocument.on.readyStateChange
を使ってみましたが、どちらもうまくいかないようです。次のコードでは、onContentLoaded()
とonReadyChanged()
が呼び出されることはありません。ダーツでDOMがいつ用意されているかを確認するには?
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();
}
いつでも 'window.on.load'を使うことができます。正しいDOMイベントは 'document.addEventListener(" DOMContentLoaded ")'ですので、 'document.on.DOMContentLoaded'を試してください – Raynos
DocumentEventsインターフェイスで" DOMContentLoaded "というイベントが見つかりません。それが存在すると確信していますか? – Curyous
DOMContentLoadedは、イベントの定義済みのw3c名です。私はダーツやDOMエミュレーションレイヤーについて何も知らない。 'document.addEventListener(" DOMContentLoaded "、cb)' – Raynos