如何在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;  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值