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;