2011-04-25 68 views
1

大家好,希望這是一個快速的。
我正在研究一個c#web瀏覽器,其中包括更改css樣式的網頁,例如google和facebook。例如它會使Facebook上的背景和谷歌紅而不是白色。我已經取得了成功,但它並不一致,我不知道爲什麼。
在C#中動態更改Css風格(夏普)不使用Asp

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#,我發現它更容易,但仍然得到它的掛鉤。先謝謝你。

編輯:問題解決了

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

這個工作在Facebook,谷歌和rationality.tk

+0

即使Chrome的動態樣式編輯也不一致。 – 2011-04-25 15:57:12

+0

我只是不明白谷歌有一個機構,所以爲什麼沒有設置屬性工作理性.tk它沒有預設的CSS樣式可以這是爲什麼設置CSS編輯代碼不起作用。我完全失去了Facebook,我甚至不能編輯特定的div。 – 2011-04-26 04:45:40

回答

0

我不是很肯定,但問題可能是由於嵌入式iframes和iGoogle小工具一樣。在COM/ATL中爲我的瀏覽器助手對象實現類似的功能時,我遇到了同樣的問題。幫助我(在某種程度上)的方法是等待DOCUMENT_COMPLETE每個iframe事件,然後嘗試獲取它們的body。我再次不確定如何在C#中實現同樣的功能。這只是你想法中的一些食物。

+0

我非常高興地宣佈,我已經解決了純粹的漏洞問題,這裏是我的代碼,並在我的文章中發佈瞭解決方案 – 2011-04-26 13:16:26