http://blog.csdn.net/foruok/article/details/50799518
mfc中嵌入了一個谷歌內核瀏覽器, 現在需要獲取document介面, 用來遍歷網頁元素, 不是js的方式, 是直接要C++代碼操作.
按照上面的帖子的方法, 實作了CefDOMVisitor類
class DomVisitTestor : public CefDOMVisitor
{
public:
DomVisitTestor();
void TestAccess(CefRefPtr<CefDOMDocument> document);
void TestModify(CefRefPtr<CefDOMDocument> document);
void Visit(CefRefPtr<CefDOMDocument> document) OVERRIDE;
IMPLEMENT_REFCOUNTING(DomVisitTestor);
};
并執行了
m_clientHandler->GetBrowser()->GetMainFrame()->VisitDOM(new ClientDOMVisitor());
但是DomVisitTestor::Visit();始終沒有被執行.
毫無頭緒, 希望那個大神給指點迷津, 目的就是為了遍歷網頁元素, 不是用js的方法.
uj5u.com熱心網友回復:
請問找到方法了嗎?uj5u.com熱心網友回復:
據說需要在render主執行緒呼叫該方法uj5u.com熱心網友回復:
請問您現在找到解決方法了嗎uj5u.com熱心網友回復:
有沒有DEMO啊uj5u.com熱心網友回復:
找到個p,var stm = chromeBrowser.GetSourceAsync().Result;只能這樣,分析這個字串吧uj5u.com熱心網友回復:
我是在app里發送訊息,在render里呼叫,就可以了。uj5u.com熱心網友回復:
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();doc.LoadHtml(Html);//填充網頁原始碼
HtmlNode htmlnode = doc.DocumentNode.SelectSingleNode("//div[@class='results']");//獲取網頁的節點
HtmlAgilityPack.HtmlNodeCollection nodecollection = htmlnode.ChildNodes;
for (int i = 0; i < nodecollection.Count; i++)
{
string result = nodecollection[i].OuterHtml;//遍歷節點獲取到想要的原始碼
}
不知道你是不是需要這些,我這個是c#的,希望能幫助下
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/73218.html
標籤:VC.NET
上一篇:多用as少用強制型別轉換
