我注意到由Web瀏覽器組件使用的Internet Explorer修改了原始的源代碼。我不敢肯定一些代碼必須由於Ajax請求和一切而改變。當我聲明html被修改時,我指的是即使它們不在實際的源代碼中也插入的那些標籤。例如,IE在不存在的情況下完成「body」標記,當表格沒有時標記爲「tbody」標記。有沒有辦法保持文檔的原始結構?有沒有辦法告訴WebBrowser組件C#不要改變原來的HTML?
如果你不明白這個問題,讓我知道,謝謝。
我注意到由Web瀏覽器組件使用的Internet Explorer修改了原始的源代碼。我不敢肯定一些代碼必須由於Ajax請求和一切而改變。當我聲明html被修改時,我指的是即使它們不在實際的源代碼中也插入的那些標籤。例如,IE在不存在的情況下完成「body」標記,當表格沒有時標記爲「tbody」標記。有沒有辦法保持文檔的原始結構?有沒有辦法告訴WebBrowser組件C#不要改變原來的HTML?
如果你不明白這個問題,讓我知道,謝謝。
我不得不作出一些假設,但這裏是我的理論:
你們看到的不是IE改變HTML。我不知道你是怎麼看到這個的,但這是IE序列化它的DOM樹。當然,IE必須關閉body標籤(或者如果我們必須精確地創建body DOM元素)才能呈現某些東西。序列化的DOM不是原始的HTML,如果你想提取原始的HTML,你可能沒有使用正確的工具。這種行爲有時會在WSIYWYG編輯器中以及在IE中使用保存頁面時出現。它只是將其內部DOM樹轉儲回字符串中,並且在DOM樹中沒有不完整的元素,因爲它們是樹節點而不是標記。
我讓你知道我不明白這個問題。 – 2012-03-23 13:37:00
你需要使用WebBrowser組件嗎?您是否有可能使用WebClient發出http請求?我認爲這種方式不會修改響應。 – 2012-03-23 13:39:18
如果您需要原始的serever響應,您可以使用HttpWebRequest查詢服務器,並獲取原始的未修改的HttpWebResponse。 – JotaBe 2012-03-23 13:40:11