动态改变网页内容(CHtmlView/CWebBrowser2/IE
来源:互联网 发布:js 判断qq或者微信 编辑:程序博客网 时间:2024/06/05 12:42
很多时候,我们需要动态的修改网页的内容。
早先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");
转载:http://www.360doc.com/content/13/0619/14/12651937_294039700.shtml
- 动态改变网页内容(CHtmlView/CWebBrowser2/IE
- 动态改变网页内容(CHtmlView/CWebBrowser2/IE)
- 动态改变网页内容(CHtmlView/CWebBrowser2/IE)
- innerHTML和innerText的用法(动态改变网页内容)
- innerHTML和innerText的用法(动态改变网页内容)
- innerHTML和innerText的用法(动态改变网页内容)
- 清空IE CWebBrowser2缓存
- 工作问题积累(十六)动态改变网页中的内容,向网页中添加文本
- CHtmlView指定IE内核
- javascript随机改变网页内容
- 动态改变表格单元格内容
- 动态改变表格单无格内容
- javascript 动态改变菜单内容
- 网页中动态改变样式
- Webbroswer或者DLG中嵌入的View(继承CHtmlView)显示网页内容部分白屏
- CHtmlView下的IE版本
- CHtmlView指定IE内核版本
- CHtmlView指定IE内核版本
- 百度地图API详解之地图标注
- Mysql中文乱码问题完美解决方案
- error LNK2005 已经在***.obj中定义
- 数据容灾恢复软件Acronis Backup & Recovery的快速安装方法
- 2010-09-02 15:48 Ubuntu的shell之bash和dash
- 动态改变网页内容(CHtmlView/CWebBrowser2/IE
- 浅谈Jquery的使用下篇
- 联想万全raid1硬盘坏掉替换方法
- 【MVC】C# Razor 语法快速查询
- 【Linux基础】信号量
- svn就这么简单1——安装与配置
- IOS开发之UIView的基本使用
- UML类图关系大全
- 今天学习的单例模式