動態改變網頁內容(CHtmlView/CWebBrowser2/IE) (轉)
很多時候,我們需要動態的修改網頁的內容。
早先COM集中營曾有篇文章介紹過,/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或者Browser
return;
if (FAILED(pHTMLDocument->QueryInterface(&pPSI)))
{
return;
}
pHTMLDocument->clear();
pPSI->InitNew();
LPCTSTR strText = m_pView->LockBuffer();
D 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");
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990430/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 提取動態html網頁內容HTML網頁
- 動態修改網頁title內容程式碼例項網頁
- 動態路由,透過id改變,改頁面路由
- 動態改變螢幕設定 (轉)
- 網頁內容部分設滾動條網頁
- Python 爬取網頁中JavaScript動態新增的內容(一)Python網頁JavaScript
- Python 爬取網頁中JavaScript動態新增的內容(二)Python網頁JavaScript
- python 爬蟲如何爬取動態生成的網頁內容Python爬蟲網頁
- 實時監聽div,input內容改變並獲取值(包括指令碼動態新增)指令碼
- vue-router 2.0 改變的內容Vue
- 動態改變類結構 & 動態…
- jquery實現改變所匹配的內容jQuery
- JavaScript監聽文字節點內容改變JavaScript
- IE瀏覽器開啟明明有內容的網頁卻顯示空白頁問題瀏覽器網頁
- 修改網頁內容的方法網頁
- 玩轉PHP動態網頁設計PHP網頁
- 網際網路25年改變世界的25大方面,成人內容上榜
- 利用HtmlGenericControl類,動態改變Title文字 (轉)HTML
- IOS 動態改變cell的高度iOS
- Android動態改變佈局Android
- C#抓取網頁HTML內容C#網頁HTML
- 巧用網頁顯示硬碟內容網頁硬碟
- C#動態生成EXCLE並進行新增內容(轉)C#
- Java靜態變數在靜態方法內部無法改變值Java變數
- 靜態網頁與動態網頁的區別網頁
- 靜態網頁和動態網頁的區別網頁
- 產品推薦-監控網頁內容變化的守夜人網頁
- 使用pl/sql獲得網頁內容~~~SQL網頁
- 爬網入門:JAVA抓取網站網頁內容Java網站網頁
- 再快一點?動態內容如何加速
- js動態設定div的內容JS
- JS把內容動態插入到DIVJS
- 網頁變灰相容IE低版本瀏覽器網頁瀏覽器
- 動態改變螢幕設定 解析度、顏色等。 (轉)
- APEX 通過PL/SQL動態展示區域中動態內容SQL
- javascript動態改變css3的animationJavaScriptCSSS3
- js動態改變css偽類樣式JSCSS
- 【layui】 laydate動態改變日期最小值UI