动态改变网页内容(CHtmlView/CWebBrowser2/IE)
来源:互联网 发布:西门子s7300仿真软件 编辑:程序博客网 时间:2024/05/21 08:36
很多时候,我们需要动态的修改网页的内容。
早先COM集中营曾有篇文章介绍过,源代码:http://263.csdn.net/FileBBS/files/2001_9/T_642_1.zip
其中基本代码如下:
void CMainFrame::OnChangehtml()
{
IHTMLDocument2 *pHTMLDocument=NULL;
IPersistStreamInit *pPSI=NULL;
IStream *pStream=NULL;
HGLOBAL hHTMLText;
if (!(pHTMLDocument = (IHTMLDocument2*)m_pHtmlView->m_browser.GetDocument()))//m_pHtmlView是CHtmlView或者WebBrowser
return;
if (FAILED(pHTMLDocument->QueryInterface(&pPSI)))
{
return;
}
pHTMLDocument->clear();
pPSI->InitNew();
LPCTSTR strText = m_pSourceView->LockBuffer();
DWORD dwLength= strlen(strText);
hHTMLText = GlobalAlloc(GMEM_FIXED, dwLength);
memset(hHTMLText, 0, dwLength);
memcpy(hHTMLText, strText, dwLength);
m_pSourceView->UnlockBuffer();
CreateStreamOnHGlobal(hHTMLText, TRUE, &pStream);
ULARGE_INTEGER libNewSize;
libNewSize.QuadPart = dwLength;
pStream->SetSize(libNewSize);
pPSI->Load(pStream);
pStream->Release();
pPSI->Release();
}
网页内容倒是动态改变了,但你查看一下网页属性会发现,网页变成了:about:blank
很痛苦是吧,变成空白页了,呵呵~~
下面方法利用IHtmlDocument2的方法动态改变网页内容,而不改变网页属性
BOOL CXXXXView::put_bodyHtml(CString cs)
{
IHTMLDocument2* pHtmlDoc2 = (IHTMLDocument2*)GetHtmlDocument();
if( pHtmlDoc2)
{
HRESULT hr = S_OK;
IHTMLElement *pBodyElement;
hr=pHtmlDoc2->get_body( &pBodyElement);
if(pBodyElement!=NULL)
{
BSTR pbBody = cs.AllocSysString();
hr=pBodyElement->put_innerHTML(pbBody); //类似的还有put_innerTEXT
pBodyElement->Release();
}
pHtmlDoc2->Release();
if( hr==S_FALSE) return FALSE;
else return TRUE;
}
else return FALSE;
}
到时候你只需要这样调用:put_BodyHtml("a string");
- 动态改变网页内容(CHtmlView/CWebBrowser2/IE
- 动态改变网页内容(CHtmlView/CWebBrowser2/IE)
- 动态改变网页内容(CHtmlView/CWebBrowser2/IE)
- innerHTML和innerText的用法(动态改变网页内容)
- innerHTML和innerText的用法(动态改变网页内容)
- innerHTML和innerText的用法(动态改变网页内容)
- 工作问题积累(十六)动态改变网页中的内容,向网页中添加文本
- 清空IE CWebBrowser2缓存
- 动态生成(改变)iframe中的内容
- CHtmlView指定IE内核
- javascript随机改变网页内容
- 动态改变表格单元格内容
- 动态改变表格单无格内容
- javascript 动态改变菜单内容
- 网页中动态改变样式
- Webbroswer或者DLG中嵌入的View(继承CHtmlView)显示网页内容部分白屏
- CHtmlView下的IE版本
- CHtmlView指定IE内核版本
- 30
- libavformat/libavcodec 学习
- (转载)C++的一些要点
- 什么是杯具。。。。
- 《代码大全2》读书笔记
- 动态改变网页内容(CHtmlView/CWebBrowser2/IE)
- LibTomMath + vs2008,安装和测试程序
- SQL Server 2008 里面 DateTime2 解决过去恐怖的 MinValue问题
- ASP.NET中Cookie的用法
- Android传感器编程入门
- A generic JAXB marshal/unmarshal XmlType
- 2011年新计划
- 用js判断是否联网
- 看了伤感-请举全国之力送他们回家