uses
ActiveX; procedure WB_LoadHTML(WebBrowser: TWebBrowser; HTMLCode: string);
var
sl: TStringList;
ms: TMemoryStream;
begin
WebBrowser.Navigate('about:blank');
while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
Application.ProcessMessages; if Assigned(WebBrowser.Document) then
begin
sl := TStringList.Create;
try
ms := TMemoryStream.Create;
try
sl.Text := HTMLCode;
sl.SaveToStream(ms);
ms.Seek(0, 0);
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
finally
ms.Free;
end;
finally
sl.Free;
end;
end;
end;
使用以上代码在大多数WINDOWS系统(中文及英文等)都能正常显示HTML页面内容,但在少部分系统中会直接显示HTML文件源代码,即通过流写入到WebBrowser的内容,没有正确解释为网页,而直接显示出来。我希望能知道这是怎么造成的,有什么解决办法。之前曾问过这个问题,大家可以看看
http://community.csdn.net/Expert/topic/3068/3068911.xml?temp=.2598535
重点是,谁知道原因。
ActiveX; procedure WB_LoadHTML(WebBrowser: TWebBrowser; HTMLCode: string);
var
sl: TStringList;
ms: TMemoryStream;
begin
WebBrowser.Navigate('about:blank');
while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
Application.ProcessMessages; if Assigned(WebBrowser.Document) then
begin
sl := TStringList.Create;
try
ms := TMemoryStream.Create;
try
sl.Text := HTMLCode;
sl.SaveToStream(ms);
ms.Seek(0, 0);
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
finally
ms.Free;
end;
finally
sl.Free;
end;
end;
end;
使用以上代码在大多数WINDOWS系统(中文及英文等)都能正常显示HTML页面内容,但在少部分系统中会直接显示HTML文件源代码,即通过流写入到WebBrowser的内容,没有正确解释为网页,而直接显示出来。我希望能知道这是怎么造成的,有什么解决办法。之前曾问过这个问题,大家可以看看
http://community.csdn.net/Expert/topic/3068/3068911.xml?temp=.2598535
重点是,谁知道原因。
解决方案 »
- execl读取数据问题!?
- mysql三个inner join 的查询加时间倒排序后速度超慢
- 从excel导数据到access出错???
- 请教一个菜鸟问题?
- Rave5报表打印中文时换行出现乱码
- 怎么样把一副BMP图象的背景色转为白色。
- 在AdoQuery中执行Insert时出错!!!
- 小问题,200分!!!,我下载个软件,安装之后,我又想删除,我没用“添加或删除程序”删除,而是用其他方法删除,结果在“添加或删除程
- danhint和rzlabel属于哪两组控件包中的控件
- 各位大虾,请问windows的图标文件放在何处?如何使用它?
- 程序中如何取得fr报表自定义的纸张大小?
- fastreport怎么制作主名细报表,菜鸟请大侠帮忙!!!!!!!!!!!!!
另外,要考虑安全性,不能让人截取HTML资料内容。界面的处理已经作好,但不知道如果使用临时文件浏览HTML内容,如何防止这个临时文件被窃取
使用WebBrowser.OleObject.document.body.innerHTML输入HTML内容可以解决正常显示的问题。
但是WebBrowser.OleObject.document.body.innerHTML只包含了<body></body>标记之间的内容。
请问如何将<head></head>之间的内容也通过这种方式写入webbrowser?
如果html内容包含script脚本,又该如何做呢?