在c# (Sharp)中动态更改Css样式

本文关键字:Css 样式 动态 Sharp | 更新日期: 2023-09-27 17:52:44

大家好,希望这是一个简短的问题。
我正在开发一个c#网页浏览器,它可以改变像google和facebook这样的网页的css样式。例如,它将使facebook和谷歌的背景红色而不是白色。我已经成功了,但它不是始终如一的,我不知道为什么。

HtmlDocument doc = Browser1.Document;
HtmlElement textElem = doc.CreateElement("DIV");
textElem.InnerHtml = "<STYLE>body{background-color:red!important}</STYLE>";
doc.Body.AppendChild(textElem);

,代码工作在www.google.com,但不是www.rationality.tk然而..

HtmlElement head = Browser1.Document.GetElementsByTagName("body")[0];
head.SetAttribute("bgcolor", "red");

该代码在www.rationality.tk上工作,但不www.google.com,两个代码都不能在www.facebook.com上工作,我无法得到任何工作

我可能做错了什么,我只是在放弃c++后转向c#,我发现它更容易,但仍然得到它的窍门。提前谢谢你。

编辑:PROBLEM SOLVED

HtmlElement head = Browser1.Document.GetElementsByTagName("body")[0];头。Style = "background-color:red";

这适用于facebook, Google和rational .tk

在c# (Sharp)中动态更改Css样式

我不是很确定,但问题可能是由于嵌入式iframes和谷歌喜欢的小部件。在为我的浏览器助手对象实现COM/ATL的类似功能时,我遇到了同样的问题。帮助我(在某种程度上)的方法是等待每个iframeDOCUMENT_COMPLETE事件,然后尝试获得它们的body。同样,我不确定如何在c#中实现相同的功能。