我使用 MFC CHtmlView 类视图打开了目标网页,里面有个div如下,该div内容是通过ajax动态获取的,html源文件是没有内容的,打开网页后,内容已经显示出来了,请教如何获取到该div的内容?
7条回答 默认 最新
- 「已注销」 2023-02-23 03:55关注
参考GPT和自己的思路,你可以使用 IHTMLDocument2 接口来获取 CHtmlView 中的 HTML 文档对象,并通过 getElementById 方法获取指定的 div 元素。
以下是一个示例代码,可以获取名为 block_content 的 div 元素的内容:
// 获取 CHtmlView 中的 HTML 文档对象 IHTMLDocument2* pDoc = NULL; if (SUCCEEDED(m_pBrowserApp->get_Document((IDispatch**)&pDoc))) { // 获取名为 "block_content" 的 div 元素 VARIANT varDivID; VariantInit(&varDivID); varDivID.vt = VT_BSTR; varDivID.bstrVal = SysAllocString(L"block_content"); IDispatch* pDiv = NULL; if (SUCCEEDED(pDoc->getElementById(varDivID, &pDiv))) { // 获取 div 元素的 HTML 内容 IHTMLElement* pElem = NULL; if (SUCCEEDED(pDiv->QueryInterface(IID_IHTMLElement, (void**)&pElem))) { BSTR bstrHTML; if (SUCCEEDED(pElem->get_innerHTML(&bstrHTML))) { CString strHTML(bstrHTML); // 输出 div 元素的内容 TRACE(_T("div content: %s\n"), strHTML); SysFreeString(bstrHTML); } pElem->Release(); } pDiv->Release(); } VariantClear(&varDivID); pDoc->Release(); }
在上面的代码中,m_pBrowserApp 是 CHtmlView 类中的成员变量,用于获取 IWebBrowser2 接口的指针。getElementById 方法可以根据 div 元素的 ID 属性获取元素对象,get_innerHTML 方法可以获取元素的 HTML 内容。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 nginx使用nfs进行服务器的数据共享
- ¥15 C#i编程中so-ir-192编码的字符集转码UTF8问题
- ¥15 51嵌入式入门按键小项目
- ¥30 海外项目,如何降低Google Map接口费用?
- ¥15 fluentmeshing
- ¥15 手机/平板的浏览器里如何实现类似荧光笔的效果
- ¥15 盘古气象大模型调用(python)
- ¥15 传人记程序做的plc 485从机程序该如何写
- ¥15 已知手指抓握过程中掌指关节、手指各关节和指尖每一帧的坐标,用贝塞尔曲线可以拟合手指抓握的运动轨迹吗?
- ¥50 libwebsockets 如何添加其他socket事件回调