2012-03-23 132 views
4

我注意到由Web瀏覽器組件使用的Internet Explorer修改了原始的源代碼。我不敢肯定一些代碼必須由於Ajax請求和一切而改變。當我聲明html被修改時,我指的是即使它們不在實際的源代碼中也插入的那些標籤。例如,IE在不存在的情況下完成「body」標記,當表格沒有時標記爲「tbody」標記。有沒有辦法保持文檔的原始結構?有沒有辦法告訴WebBrowser組件C#不要改變原來的HTML?

如果你不明白這個問題,讓我知道,謝謝。

+5

我讓你知道我不明白這個問題。 – 2012-03-23 13:37:00

+0

你需要使用WebBrowser組件嗎?您是否有可能使用WebClient發出http請求?我認爲這種方式不會修改響應。 – 2012-03-23 13:39:18

+0

如果您需要原始的serever響應,您可以使用HttpWebRequest查詢服務器,並獲取原始的未修改的HttpWebResponse。 – JotaBe 2012-03-23 13:40:11

回答

1

我不得不作出一些假設,但這裏是我的理論:

你們看到的不是IE改變HTML。我不知道你是怎麼看到這個的,但這是IE序列化它的DOM樹。當然,IE必須關閉body標籤(或者如果我們必須精確地創建body DOM元素)才能呈現某些東西。序列化的DOM不是原始的HTML,如果你想提取原始的HTML,你可能沒有使用正確的工具。這種行爲有時會在WSIYWYG編輯器中以及在IE中使用保存頁面時出現。它只是將其內部DOM樹轉儲回字符串中,並且在DOM樹中沒有不完整的元素,因爲它們是樹節點而不是標記。

+0

+1:是的,我想說他也是在根據他發佈的內容來查看DOM。 – code4life 2012-03-23 13:50:22

+0

是的,我在看DOM,因爲這是我需要做的。那麼答案是沒有辦法告訴資源管理器在序列化文檔時添加額外的節點? – Devela 2012-03-23 16:33:52

+0

這些節點位於IE DOM中。這就是IE瀏覽器如何看你提供的HTML。它沒有添加它只是隱含地看到它們的元素。我懷疑是否有辦法告訴它,但是我又不是專家。 – Stilgar 2012-03-23 17:27:54

相關問題