关于TWebBrowser控件的刷新问题

nevergone 2009-09-15 12:56:03
使用TWebBrowser控件显示word文档 a.doc 文件
当a.doc内容变动, 而文件名不变时, TWebBrowser只会加载他缓存的内容
测试使用wb1.Refresh来刷新缓存, 但是无效
有谁遇到这种情况, 谢谢
...全文
121 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wintergoes 2009-09-16
  • 打赏
  • 举报
回复
给文件地址加一个随机值参数
比如a.doc?para=98374
para你自己随意定义,后面的值用随机数
原理是这样的,对于同一个地址,BROWSER会从缓存文件中找缓存的文件
所以虽然文件更新了,但是地址不变,数据可能不会被刷新
加个参数后,每次的地址都不一样,所以它就不会从缓存读数据了
nevergone 2009-09-16
  • 打赏
  • 举报
回复
还有其他方法吗?
yshuui 2009-09-16
  • 打赏
  • 举报
回复
确实有这个问题,不仅http存在,ftp也存在,直接打开时就是这样,清除缓存。
wintergoes 2009-09-16
  • 打赏
  • 举报
回复
本地文件是怎么打开的,直接用c:\a.doc这样的?
你试试,本地的不知道好用不好用
就在后面加?para=XXX就行了
飞天揽月 2009-09-16
  • 打赏
  • 举报
回复
TEmbeddedWB
用这个 里面有参数可以设定
nevergone 2009-09-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wintergoes 的回复:]
给文件地址加一个随机值参数
比如a.doc?para=98374
para你自己随意定义,后面的值用随机数
原理是这样的,对于同一个地址,BROWSER会从缓存文件中找缓存的文件
所以虽然文件更新了,但是地址不变,数据可能不会被刷新
加个参数后,每次的地址都不一样,所以它就不会从缓存读数据了
[/Quote]
像这样吗?
Explorer.Navigate('a.doc?para=8956');
我这里是本地的哦.
sanguomi 2009-09-16
  • 打赏
  • 举报
回复
DeleteUrlCacheEntry(url)
本地,或者网络URL,如果本地有缓冲,会先加载本地缓冲,用DeleteUrlCacheEntry函数就可以把缓冲清掉掉
sanguomi 2009-09-16
  • 打赏
  • 举报
回复

uses
Wininet;

procedure TForm1.Button1Click(Sender: TObject);
var
Str: string;
begin
Str := 'C:\Documents and Settings\Administrator\桌面\新建 文本文档.txt';
DeleteUrlCacheEntry(pchar(Str));
WebBrowser1.Navigate(Str);
end;

我自己测试都没问题, 是你自己不会用吧
nevergone 2009-09-16
  • 打赏
  • 举报
回复
本地就是直接
Explorer.Navigate('文件路径');
sanguomi 2009-09-15
  • 打赏
  • 举报
回复
DeleteUrlCacheEntry

5,388

社区成员

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

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