所以在我的網站上有一個Javascript函數,它將通過XMLHttpRequest從服務器加載一個新的站點。之後,它用新的替換當前頁面:Javascript document.open異步?
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()完成後沒有「準備就緒」事件被觸發.... 我如何確定它已完成?
/編輯: 打手()記錄這個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:可見')後直接進入控制檯手動它顯示我的所有圖片... 。
N.B .:'do'是JavaScript中的保留字。 –
是的,我實際上縮短了代碼的變量名稱以保持清晰度 –