procedure writeHTML(WebInfo:TWebBrowser;text:String); var HTMLDoc: IHTMLDocument2; v:Variant; begin WebInfo.Navigate('about:blank', EmptyParam, EmptyParam, EmptyParam, EmptyParam); while WebInfo.ReadyState <> READYSTATE_COMPLETE do begin Application.ProcessMessages; Sleep(0); end; if Assigned(WebInfo.Document) then begin HTMLDoc := WebInfo.Document as IHTMLDocument2; v := VarArrayCreate([0, 0], varVariant); v[0] := text; // Here's your HTML string HTMLDoc.clear; HTMLDoc.Write(PSafeArray(TVarData(v).VArray)); HTMLDoc.Close; v:=Unassigned; end; end; //以流方式加载数据到WebBrowser控件 procedure LoadStream(WebBrowser: TWebBrowser; Stream: TStream); var PersistStreamInit: IPersistStreamInit; StreamAdapter: IStream; MemoryStream: TMemoryStream; begin WebBrowser.Navigate('about:blank'); repeat Application.ProcessMessages; Sleep(0); until (WebBrowser.ReadyState = READYSTATE_COMPLETE) and (Not WebBrowser.Busy); if WebBrowser.Document.QueryInterface(IPersistStreamInit, PersistStreamInit) = S_OK then begin if PersistStreamInit.InitNew = S_OK then begin MemoryStream:= TMemoryStream.Create; try MemoryStream.CopyFrom(Stream, 0); MemoryStream.Position:= 0; except MemoryStream.Free; raise; end; StreamAdapter:= TStreamAdapter.Create(MemoryStream, soOwned); PersistStreamInit.Load(StreamAdapter); //以下代码用于屏蔽经常出现的网页脚本执行错误 (WebBrowser.Document as IHTMLDocument2).body.insertAdjacentHTML('afterbegin', '<SCRIPT For=''window'' Event=''onerror''>var noOp = null;</SCRIPT>'); end; end; end;
var
HTMLDoc: IHTMLDocument2;
v:Variant;
begin
WebInfo.Navigate('about:blank', EmptyParam, EmptyParam, EmptyParam, EmptyParam);
while WebInfo.ReadyState <> READYSTATE_COMPLETE do
begin
Application.ProcessMessages;
Sleep(0);
end;
if Assigned(WebInfo.Document) then
begin
HTMLDoc := WebInfo.Document as IHTMLDocument2;
v := VarArrayCreate([0, 0], varVariant);
v[0] := text; // Here's your HTML string
HTMLDoc.clear;
HTMLDoc.Write(PSafeArray(TVarData(v).VArray));
HTMLDoc.Close;
v:=Unassigned;
end;
end;
//以流方式加载数据到WebBrowser控件
procedure LoadStream(WebBrowser: TWebBrowser; Stream: TStream);
var
PersistStreamInit: IPersistStreamInit;
StreamAdapter: IStream;
MemoryStream: TMemoryStream;
begin
WebBrowser.Navigate('about:blank');
repeat
Application.ProcessMessages;
Sleep(0);
until (WebBrowser.ReadyState = READYSTATE_COMPLETE) and (Not WebBrowser.Busy);
if WebBrowser.Document.QueryInterface(IPersistStreamInit,
PersistStreamInit) = S_OK then
begin
if PersistStreamInit.InitNew = S_OK then
begin
MemoryStream:= TMemoryStream.Create;
try
MemoryStream.CopyFrom(Stream, 0);
MemoryStream.Position:= 0;
except
MemoryStream.Free;
raise;
end;
StreamAdapter:= TStreamAdapter.Create(MemoryStream, soOwned);
PersistStreamInit.Load(StreamAdapter);
//以下代码用于屏蔽经常出现的网页脚本执行错误
(WebBrowser.Document as IHTMLDocument2).body.insertAdjacentHTML('afterbegin',
'<SCRIPT For=''window'' Event=''onerror''>var noOp = null;</SCRIPT>');
end;
end;
end;