我使用下面的代码成功获取了使用 webbrowser 控件加载的页面中每张图片的副本。
Dim doc As IHTMLDocument2 = DirectCast(wb.Document.DomDocument, IHTMLDocument2)
Dim imgRange As IHTMLControlRange = DirectCast(DirectCast(doc.body, HTMLBody).createControlRange(), IHTMLControlRange)
For Each img As IHTMLImgElement In doc.images
imgRange.add(DirectCast(img, IHTMLControlElement))
imgRange.execCommand("Copy", False, Nothing)
Using bmp As Bitmap = DirectCast( _
Clipboard.GetDataObject().GetData(DataFormats.Bitmap), Bitmap)
bmp.Save(img.nameProp)
End Using
Next
我从这里得到代码:Copy an image from cache of web browser control present in VB.NET
但是,我感兴趣的图片在 iFrame 内。
我尝试改变:
Dim doc As IHTMLDocument2 = DirectCast(wb.Document.DomDocument, IHTMLDocument2)
至
Dim doc As IHTMLDocument2 = DirectCast(wb.Document.Window.Frames(iFrameID).Document.DomDocument, IHTMLDocument2)
但我收到“拒绝访问”错误。我猜(不确定)是因为 iframe 的 src 在不同的域上。
有没有办法解决这个问题?
谢谢!