uses MSHTML;procedure TForm1.FormCreate(Sender: TObject); begin WebBrowser1.Navigate('about:blank'); end;procedure TForm1.Button1Click(Sender: TObject); begin (WebBrowser1.Document as IHtmlDocument2).body.insertAdjacentHTML('beforeEnd', '第一行<br>第二行<br>'); end;插入一个HTML,IE能实现什么不能实现?~~
WnEunfn(斯人不语)好不容易才解决这个问题,由于代码比较长,你要慢慢看吧……首先:uses ActiveX;//引用!!----------------------------------------------------------------TfrmChildWeb = class(TForm)WebBrowser: TWebBrowser;//TwebBrowser!!!procedure FormCreate(Sender: TObject);//必用的一个事件…privateFOleInPlaceActiveObject: IOleInPlaceActiveObject;procedure MsgHandler(var Msg: TMsg; var Handled: Boolean);//自定义的一个处理……publicend;----------------------------------------------------------------过程:procedure TfrmChildWeb.MsgHandler(var Msg: TMsg; var Handled: Boolean);variOIPAO: IOleInPlaceActiveObject;Dispatch: IDispatch;beginif WebBrowser = nil then beginHandled := False;Exit;end;Handled := (IsDialogMessage(WebBrowser.Handle, Msg) = True);if (Handled) and (not WebBrowser.Busy) thenbeginif FOleInPlaceActiveObject = nil thenbeginDispatch := WebBrowser.Application;if Dispatch <> nil thenbeginDispatch.QueryInterface(IOleInPlaceActiveObject, iOIPAO);if iOIPAO <> nil thenFOleInPlaceActiveObject := iOIPAO;end;end;if FOleInPlaceActiveObject <> nil thenif ((Msg.message = WM_KEYDOWN) or (Msg.message = WM_KEYUP)) and((Msg.wParam = VK_BACK) or (Msg.wParam = VK_LEFT) or (Msg.wParam = VK_RIGHT)) thenelseFOleInPlaceActiveObject.TranslateAccelerator(Msg);end;end; procedure TfrmChildWeb.FormCreate(Sender: TObject);beginApplication.OnMessage := MsgHandler;end;
begin
WebBrowser1.Navigate('about:blank');
end;procedure TForm1.Button1Click(Sender: TObject);
begin
(WebBrowser1.Document as IHtmlDocument2).body.insertAdjacentHTML('beforeEnd', '第一行<br>第二行<br>');
end;插入一个HTML,IE能实现什么不能实现?~~