webbrowser中能不能捕捉到这个事件?(急!!!高手请帮帮忙,up也给分) (100分)

  • 主题发起人 主题发起人 china_bug
  • 开始时间 开始时间
C

china_bug

Unregistered / Unconfirmed
GUEST, unregistred user!
当在webbrowser中加载一个新的页面时,在页面中有一些图片资源,请问如何捕捉webbrowser打开这些图片文件的事件?
 
图片下载完毕会触发 OnDownLoadcomplete 事件.
 
根据 TWebBrowser.OnBeforeNavigate2 中的参数 URL

Occurs immediately before the Web browser navigates to a new resource.

type TWebBrowserBeforeNavigate2 = procedure(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant; var Flags: OleVariant; var TargetFrameName: OleVariant; var PostData: OleVariant;
var Headers: OleVariant; var Cancel: WordBool) of object;
property OnBeforeNavigate2: TWebBrowserBeforeNavigate2;

Description

Write an OnBeforeNavigate2 event handler to redirect or cancel a change to a different URL. This event may occur as the result of a call to the Navigate or Navigate2 method, or the user clicking a link.

Sender is the Web browser control that is about to look up a new URL.

pDisp is the Automation interface of the Web browser control specified by Sender.

URL is the Uniform Resource Locator of the resource the Web browser is looking up. Change this value to redirect the navigation operation to a different resource.

Flags is not currently used.

TargetFrameName is the name of the frame in which the resource will be displayed, or NULL if the resource should not be displayed in a named frame. Change this value to change where the resource is displayed. See the Navigate method for a list of possible values.

PostData contains the data sent to the server when the underlying operation is an HTTP post message. The event handler can change this value before it is sent to the target URL.

Headers contains any headers sent to the servers when the URL represents an HTTP message. HTTP headers specify such things as the intended action required of the server, the type of data, and so on. (See TWebRequest object, whose properties represent many of the more common headers). The event handler can change this value before it is sent to the target URL.

Cancel determines whether the Web browser looks up the specified resource after the event handler exits. Change Cancel to True to cancel the navigation operation.

 
我可能没说清楚。
我想做的是:在使用WEBBROWSER的DOCUMENT的IPersistStreamInit接口更新页面
(这样不生成临时文件)时,如果页面只有文字信息是可行的。但如果页面中有
如图片等其他资源信息时该如何处理,可以不用生成这些图片资源的临时文件?
我看到有一个IPersistStorage接口好象可以实现这样的功能,但我不知道该如
何用。
 
谢谢XEEN
但这样好象不行,我是要在打开某个资源文件之前,去准备这个资源文件。
例如页面里有这样的代码
<img src="dfwlogo.gif" align="middle" width="240" height="60"/>
我要在WEBBROWSER开始下载dfwlogo.gif文件之前就截获消息,并处理这个文件。
 
根据 TWebBrowser.OnBeforeNavigate2 中的参数 URL
 
jsxjd
这个URL只是整个网页的名称,不能截获包含的资源文件的名称。
 
怎么没有人答呀?
 
使用namespace技术
请参照一下我的程序,不生成临时文件,
浏览资源中的Web页面
http://www.playicq.com/dispdoc.php?t=&amp;id=2260
 
to LiChaoHui:
你说的用namespace是什么概念,能否具体说说。
另你的程序我看过了,好象没有解决我的问题。你的网页中只有文字,没有图片。
 
如果哪位高手能帮我解决问题,我可以再加200分!(另开贴给)
谢谢了!
 
你好好看看帮助文档!!!!!!!!!!
 
to jsxjd:
你说的帮助文档我都看了N遍了,根本不能解决我的问题。
你说的那个事件只会触发一次!URL属性也只能显示网页的地址,
没法分解出网页中包含的资源的地址。
 
我的程序中第二组页面是有一个背景图片的,难道你没看见
hvp://lzh/APPVCL/introduction.htm

你的要求无非是浏览数据时不产生临时文件,对吧?
 
后退
顶部