gpt4 book ai didi

c# - 在呈现之前从 WebBrowser Control 中删除标记

转载 作者:太空狗 更新时间:2023-10-29 23:16:51 24 4
gpt4 key购买 nike

问题:

我正在运行带有嵌入式 WebBrowser 控件的 winforms 应用程序。我使用神奇的注册表设置将此控件切换到 IE 8 模式(如此处的回答 Will the IE9 WebBrowser Control Support all of IE9's features, including SVG? )。

但是现在,如果我导航到一个包含元标记 X-UA-Compatible IE=9(自 http://msdn.microsoft.com/en-us/library/cc288325(v=vs.85).aspx 开始)的网站,我的网络浏览器控件将切换到 IE9 模式并忽略注册表设置。

我希望我的控件保持在 IE8 模式...

我的解决方案尝试

我尝试在控件加载 (Document_complete) 后使用 IHTMLDOMNode.removeChild 删除元标记,但控件不会重新呈现页面。

我尝试手动加载 HTML 内容(使用 WebClient),删除元标记并将其提供给网络浏览器控件(使用 Document.Write 或 DocumentText),但这种方式控件拒绝加载任何其他内容(像图片)。

帮助

现在,除了编写我自己的 HTTPProxy 并在途中修改响应(我不想这样做)之外,我没有其他想法。

有人有什么想法吗?

我正在使用 .Net 4,我无法更改将要显示的网站,我需要它在 IE8 模式下呈现,无论 X-UA-Compatible 标签如何...

谢谢!

最佳答案

我在 DocumentText 方面也遇到了问题 - 我放弃了。

我的解决方案是编写进程内 HTTP 服务器并将 WebBrowser 指向该服务器。

我在这里写了一篇关于它的文章:http://SimplyGenius.net/Article/WebBrowserEx

在我的例子中,我从文件系统中获取内容。
您必须更改它才能调用您的目标网站,但这应该不会有太多工作。
然后您可以根据需要修改 HTML,链接仍然有效。

关于c# - 在呈现之前从 WebBrowser Control 中删除标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10838222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com