如何在WebBrowser1控件直接顯示memo1裏面的代碼

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; 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章