2014-02-22 80 views
2

我通過網站上的iframe加載HTML。正在加載的HTML只能在父文檔加載完成後才能加載某些內容(document.readyState == 'interactive' || document.readyState == 'complete')。問題在於,在父文檔加載完成後,HTML內容會被手動加載到iframe中。是否可以用JavaScript更改document.readyState?

是否有任何方法來欺騙父文檔的readyState以驗證加載的HTML內容是不是過早呈現?

+0

我敢肯定的jQuery 1.9和以前包含一些「workabouts 「對於這種情況。你可能想看看相關的資料來看看有什麼竅門。 – user2864740

+0

您是指$ .isReady?我認爲這是用來與$(document).ready()協同工作的,並沒有真正修改document.readyState。我將不得不查看jQuery源文件並查看究竟發生了什麼。這將是很好的一個純JavaScript解決方案 – amdilley

+0

爲什麼不使用$ .Deferred()?所以你基本上返回一個承諾,然後只在延遲解析時加載iframe。如果您需要進一步解釋,請告知我們... –

回答

3

這是對您的問題的部分回答: 這裏有兩個不同的東西:Document Object ModelJavascriptDOM是存儲顯示此頁面的查看器所需的全部信息的瀏覽器狀態。 Javascript是用於查詢/操作狀態的工具(讀取DOM)。

DOM通知Javascript的readystate更改,這只是單向的,因爲此屬性是read-only。簡短的回答你的問題是「不」,你不能改變使用JavaScript的readyState屬性。

要看到自己這一點,你可以拉一個控制檯(螢火蟲,Chrome瀏覽器開發工具)等,並在控制檯類型:

typeof document.readyState // "String" 
document.readyState // "complete" 
document.readyState = "hello world" // "hello world" 
document.readyState // if you expected it to show "hello world" it still shows "complete" 
相關問題