超难问题!关于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楼: 接受答案了.