当前位置:主页>仓库管理软件> 列表

超难问题!关于WebBrowser,请各位帮忙,急!在线等 找库存软件

进销存软件版1楼: 使用WebBrowser浏览网页时,点击网页中的按钮时会出现"打开/另存为文件"对话框。请问如何不显示对话框而直接把下载的文件下载到指定目录下。(注意:是保存文件不是保存网页)

2楼: 再webbrowser的onBeforeNavigate2事件中处理就可以了, URL为下载文件的地址,Cancel设置为true就可以不"打开/另存为文件"对话框了。
procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool); 如库存软件

3楼: cactus123456:
Cancel设置为True这个已经解决,我在点击按钮的时候察看了一下URL,竟然和所在网页的
URL相同!?

4楼: 那你在这3个变量里看看,是不是藏在这里面了:TargetFrameName, PostData, Headers

5楼: 设置了断点,结果:TargetFrameName='''', PostData好像是该页的Html,乱码, Headers=''Content-Type:Application/x-www-form-urlencoded''。
注意:下载的文件是服务器端的水晶报表根据打印结果动态生成的pdf文件。

6楼: 我测试了一下直接点击link的没有问题,如果点击button有问题我没有测试页面,不知道是怎样的。

进销存软件版7楼: cactus123456:谢谢关注。


问题关键是:要下载的文件不是事先在服务器上的,是水晶报表根据打印结果自动生成的文件。水晶报表在打印的时候需要客户端线下载它的文件~!

8楼: 无论文件在什么地方,问题解决的思路是没有错的,必须在onBeforeNavigate2事件中处理。所需要的信息肯定在这个事件中能得到。
"PostData好像是该页的Html,乱码"
其实不是乱码,应该是base64编码,你把它存成.html文件,用ie打开看看

9楼: 接受答案了.