Tôi đang cố gắng tạo trình duyệt web tùy chỉnh dựa trên điều khiển trình duyệt Web WPF. Tôi đã triển khai giao diện IWebBrowser2 com
và triển khai các trình xử lý cho các sự kiện Navigating()
, NavigatedTo()
và LoadCompleted()
. Nhưng các cuộc gọi lại sự kiện này chỉ được kích hoạt một lần cho trang cấp cao nhất. Giả sử một trang có một số tập lệnh java, css và hình ảnh trong đó; trình duyệt phát ra các yêu cầu HTTP riêng biệt để tải xuống các tệp này. Chúng tôi muốn nắm bắt các sự kiện yêu cầu HTTP riêng lẻ. Ví dụ: nếu cấu trúc của trang HTML làLàm cách nào để nhận URL mà sự kiện downloadBegin() được kích hoạt?
<html>
<body>
<img src="img1.bmp"/>
<imp src="img2.bmp"/>
</body>
</html>
Tôi muốn ghi lại thời gian tải xuống riêng lẻ cho img1.bmp và img2.bmp. Ai đó có thể đề nghị một cách để đạt được điều này?
Trong khi đó, tôi thấy rằng sự kiện downloadbegin() của DWebBrowserEvents_Event
được kích hoạt cho các yêu cầu này cho hình ảnh, v.v ... nhưng tôi không thể lấy URL mà từ đó nó tải xuống, vì trình xử lý mất hiệu lực làm tham số.
Vì vậy, có bất kỳ cách nào để tôi có thể nhận URL tương ứng vì có sự kiện là downloadComplete được kích hoạt khi quá trình tải xuống hoàn tất. Vì vậy, tôi có thể thực hiện theo cách đó.
Nhưng tôi phải giải quyết thời gian hiển thị hình ảnh ở trên. Tôi bị mắc kẹt nặng. Xin hãy giúp tôi ....
BeforeNavigate chỉ được gọi một lần, không một lần cho mỗi tệp được tải xuống cho trang. –