2012-03-23 69 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

相关问题