したがって、私のサイトには、XMLHttpRequest を介してサーバーから新しいサイトをロードする Javascript 関数があります。その後、現在のページを新しいページに置き換えます。
var post = new XMLHttpRequest();
post.open('POST', data);
post.onload = function() {
var do = document.open("text/html", "replace");
do.write(post.responseText);
do.close();
goOn();
}
function goOn() {
console.log($('img:visible'));
}
do.close() の後、ドキュメントが変更され、準備ができていると想定する人もいます。しかし、そうではありません。たとえば、大量/ビッグデータ/responseText をロードすると、関数 goOn() は空の結果のみをログに記録します。その場合、明らかに goOn() は、DOM を読み取る準備ができる前に呼び出されます。残念ながら、write() が終了した後に発生する「準備完了」イベントはありません..終了したことを確認するにはどうすればよいですか?
/編集: goOn() はこれを Chrome コンソールに記録します:
[prevObject: p.fn.p.init[1], context: #document, selector: "img:visible"]
context: #document
length: 0
prevObject: p.fn.p.init[1]
selector: "img:visible"
__proto__: Object[0]
しかし、その直後に手動でコンソールに $('img:visible') と入力すると、すべての画像が表示されます....