登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> 程序员学前班[不再更新,只读] >> 主题: [delphi/html/document/IHTMLdocument2] delphi 控制 TWebBrowser     [回主站]     [分站链接]
标题
[delphi/html/document/IHTMLdocument2] delphi 控制 TWebBrowser
clq
浏览(0) + 2009-07-09 10:03:41 发表 编辑

关键字:

[delphi/html/document/IHTMLdocument2] delphi 控制 TWebBrowser


//try
//这个时候窗口可能刚打开,所以 web.document 还不能用
//web.
//检测 ie 控件是否已经正常了
functions.WaitIeBody(web);

(web.document as IHTMLdocument2).body.innerHTML := GetHtml(msgList);
//SendMessage(web.Handle, WM_VSCROLL, SB_PAGEDOWN, 0);
//SendMessage(web.Handle, WM_VSCROLL, SB_BOTTOM, 0);
//(web.document as IHTMLdocument2).Get_ParentWindow.scrollBy(10, 10);
//(web.document as IHTMLdocument2).Get_ParentWindow.scrollBy(0, 1024);//跳到最后一行

(web.document as IHTMLdocument2).Get_ParentWindow.scroll(0,
((web.document as IHTMLdocument2).body as DispHTMLBody).scrollHeight);//滚动到底部
//相当于 window.scroll(0,document.body.scrollHeight)//滚动到底部//就是说 javascrip 中能控制的在程序中基本上也可以

//(web.document as IHTMLdocument2).body.
//except
//end;

clq
2009-7-9 10:04:00 发表 编辑

//检测 ie 控件是否已经正常了
procedure WaitIeBody(web:TWebBrowser);
var
i:integer;
begin
i := 0;

if (web.document =nil)or((web.document as IHTMLdocument2).body=nil) then
web.navigate('about:blank');

while (web.document =nil)or((web.document as IHTMLdocument2).body=nil) do
begin
inc(i);

if (i > 100) then break;

sleep(100);
application.ProcessMessages;
end;

end;

clq
2009-7-9 10:28:26 发表 编辑


procedure TForm1.FormCreate(Sender: TObject);
begin
self.WebBrowser1.Navigate('127.0.0.1');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
(WebBrowser1.document as IHTMLdocument2).designMode:='on';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
memo1.Text := (WebBrowser1.document as IHTMLdocument2).body.innerHTML;

end;

clq
2009-7-9 10:53:39 发表 编辑

procedure TForm1.Button4Click(Sender: TObject);
begin
((WebBrowser1.document as IHTMLdocument2).selection.createRange as IHTMLTxtRange).pasteHTML('aaa');
((WebBrowser1.document as IHTMLdocument2).selection.createRange as IHTMLTxtRange).pasteHTML('');
end;

clq
2009-7-9 10:54:16 发表 编辑

PastSelectionHTML("","");

void CDlg::PasteSelectionHTML( CString tagBegin, CString tagEnd)
{
HRESULT hr;
CString szTemp;
IHTMLDocument2* pDoc2 = (IHTMLDocument2* )m_htmlpage.GetHtmlDocument();

IHTMLSelectionObject* pSelection;
pDoc2->get_selection(&pSelection);
BSTR bstrValue;
IDispatch* pDisp;
hr = pSelection->createRange(&pDisp);
if(SUCCEEDED(hr) && pDisp!= NULL )
{
IHTMLTxtRange* pTextAreaElement;
hr = pDisp->QueryInterface(IID_IHTMLTxtRange,
(void**)&pTextAreaElement);
pTextAreaElement->get_text(&bstrValue);
szTemp = bstrValue;
szTemp = tagBegin + szTemp + tagEnd;
pTextAreaElement->pasteHTML( szTemp.AllocSysString());
pTextAreaElement->Release();
}else
{
AfxMessageBox("Error for create range");
}
::SysFreeString(bstrValue);
}
3ks


总数:4 页次:1/1 首页 尾页  
总数:4 页次:1/1 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1