delphi xe2 webbrowser使用问题,载入页面内容有时候会变成空白的。

stephenchern 2013-01-28 11:40:57
delphi xe2 webbrowser使用问题,载入页面内容有时候会变成空白的。
问题一般会发生在ie6 或 ie7上
ie8 9上运行都正常
症状就是页面在载入的时候,会变成空白,然后有时候重新载入,又会恢复正常
请教下大家 这是什么问题 急着用 现在遇到这个bugs,最好在所有ie上都可以使用 这样用户就无需升级ie

代码如下:(webbrowser通过参数传入,html字段为html代码)
procedure LoadWebBrowser(WebBrowser: TWebBrowser; HTML: WideString);
var
StrStream: TStringStream;
begin
StrStream := TStringStream.Create(HTML);
WebBrowser.Navigate('about:blank');
Application.ProcessMessages;
try
StrStream.Position := 0;
(WebBrowser.Document as IPersistStreamInit).Load(TStreamadapter.Create(StrStream));
finally
StrStream.Free;
end;
end;
...全文
355 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuhai_008 2013-08-16
  • 打赏
  • 举报
回复
Mark,遇到一样问题呀
stephenchern 2013-02-26
  • 打赏
  • 举报
回复
问题还是没完美解决 ie版本太低 还是会报这个错误 继续求助中。。。。
stephenchern 2013-02-05
  • 打赏
  • 举报
回复
继续求助 。。。。
stephenchern 2013-02-01
  • 打赏
  • 举报
回复
不能保存成文件,这样在电脑上就会有东西了 必须通过流
simonhehe 2013-01-29
  • 打赏
  • 举报
回复
引用 2 楼 stephenchern 的回复:
不对吧 我直接载入html串报错了啊。。还请指教 谢谢。。。。
wb1.Navigate('about:<head><title>标题</title><body>Hello World</body>'); 这句能执行吧 :) 太复杂的字符串我也没测试过. 你可以把你的html串保存为文件然后wb1.Navigate('文件路径'); 看看会不会有装载不了的问题
stephenchern 2013-01-29
  • 打赏
  • 举报
回复
不对吧 我直接载入html串报错了啊。。还请指教 谢谢。。。。
simonhehe 2013-01-29
  • 打赏
  • 举报
回复
先确保HTML页面兼容低版本IE 然后看是不是webborwser过滤了一些提示之类的, 然后导致异常. 另外, webbrowser可以直接载入HTML串, 你为什么要用流? ------------------------------------------------------- wb1.Navigate('about:<head><title>标题</title><body>Hello World</body>');
cyistudio 2013-01-29
  • 打赏
  • 举报
回复
如果网页已经加载过内容就不需要WebBrowser.Navigate('about:blank');了,直接再次载入流就行了……
simonhehe 2013-01-29
  • 打赏
  • 举报
回复
这是个webbrowser装载流的例子 先初始化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;
    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);
        end;
    end;
  end;
Delphi XE2 正式版的破解程序,有效哦。 Delphi XE2 官方完整 delphicbuilder_xe2_win_dl.iso下载地址: http://altd.embarcadero.com/download/radstudio/xe2/delphicbuilder_xe2_win_dl.iso 文件大小: 2.33G MD5: de8b9f897e2ad678643b64898470b707 Delphi Prism XE2 - ISO 1.28G http://altd.embarcadero.com/download/prism/xe2/prism_xe2_win.iso RadPHP XE2 - ISO 343M http://altd.embarcadero.com/download/radphp/xe2/radphp_xe2_win.iso 建议大家用迅雷下载 ************************************** 英巴卡迪诺发布新版RAD Studio XE2开发工具套件 日前,英巴卡迪诺宣布发布新版RAD Studio XE2软件开发工具套件,新版包含了10多年来最深入全面的特性升级。RAD Studio XE2中包含了新版本的Delphi、C++Builder、Prism和RadPHP。主要特性包括完整的Delphi 64位Windows支持,通过全新的FireMonkey富商业应用平台支持Mac OSX和iOS,以及通过RadPHP XE2支持安卓web和移动应用开发。 对Delphi XE2和C++Builder XE2来说,一个极其重要的新特性就是FireMonkey,业界第一款用于创建商业软件的原生的能全面利用到CPU和GPU计算能力的富应用平台。使用 FireMonkey,Delphi和C++Builder开发人员能开发出视觉绚丽的高清和3D应用程序,并与后台的企业级数据库如Oracle、微软 SQL Server、IBM DB2、Sybase和其他数据库互联互通。FireMonkey应用以原生方式运行在Windows PC和Mac上,可以完全利用到现代GPU的处理能力,以不可置信的细节处理能力和优异的性能表现展现数据和用户界面。FireMonkey还可以使 Delphi XE2用户为移动(iOS)设备创建原生的高清和3D应用程序。 Delphi和C++Builder为应用开发提供原生开发方式,而RadPHP XE2则支持web开发和移动设备应用的开发。使用RadPHP XE2,开发人员可以轻松为移动智能电话和平板电脑创建支持触碰和UI优化的web应用。开发人员可以部署他们的移动Web应用为原生移动应用到苹果公司的iOS应用商店和安卓的应用市场。在他们的移动Web应用中,可以直接访问移动设备的硬件,如相机、GPS和重力感应器。 其他新增特性包括: Delphi XE2 和C++Builder XE2 Delphi XE2包括完整的Windows 64位对FireMonkey、编译器、调试器、RTL 和VCL的支持; dbExpress具有新的对InterBase XE, FireBird 2.5, SQL Anywhere 12 和ODBC的连接能力; 新的DataSnap移动连接器,带有原生的平台组件和示例以创建从移动客户端到Delphi DataSnap服务器的连接,支持安卓(Java), iOS (Objective C), 黑莓(Java) 和Windows Phone 7 (C#); 新增和更新的扩展工具,包括FastReport,用于快速设计和生成报表;Documentation Insight,用于Delphi的源代码文档工具; TeeChart、IBX、InstallAware、IP*Works、Aqtime、FinalBuilder、IntraWeb和Indy 的64位版本。 TeeChart、Indy和FinalBuilder还支持Mac平台; C++Builder XE2中还包含了新的代码审计和QA度量工具; LiveBindings使用户能连接任意类型的信息到任意的FireMonkey用户界面和图形对象上。用户可以绑定实时数据到标准的用户界面控件、高清或3D图形元素上,以创建可视化任意类型数据的崭新方式; RadPHP: 集成式为移动优化的Web开发; 部署应用到Web, iOS, 或安卓; 扩展的Zend框架组件集; Embarcadero Prism: 来自RemObjects的全新的.NET Oxygene编译器; 匿名接口实现; FastReport.net

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧