|
本帖最后由 xmyjk 于 2012-2-13 15:23 编辑
研究了下WEBBROWSER跨域访问的东西,貌似搞定了,不过要引用一个东西:Edanmo's OLE interfaces & functions 是国外一个高手Edanmo写的OLELIB.TLB
解压缩附件OLELIB.zip,放在C:\WINDOWS\system32里面就可以了。
[code=vb]
Option Explicit
Public flag As Boolean
Sub t()
Dim getf As WebBrowser, dm As Object, tb As Object, t As Single
flag = False
UserForm1.cf = 0
UserForm1.Show 0
UserForm1.WebBrowser1.navigate "http://iport.sctcn.com/portal/page/portal/PG_IPort/Tab_OI?p_parametertype=ContainerInfo&p_parametervalue=OOLU7530910"
Do Until UserForm1.WebBrowser1.Busy = False And UserForm1.WebBrowser1.readyState = READYSTATE_COMPLETE
DoEvents
Loop
Do Until flag = True
DoEvents
Loop
t = Timer
Do Until Timer = t + 1
DoEvents
Loop
Set getf = getFrames(UserForm1.WebBrowser1)
Set dm = getf.document
Set tb = dm.all("tableInfo2")
MsgBox tb.Rows(5).Cells(4).innerText
End Sub
Function getFrames(ByVal WB As WebBrowser) As Object
Dim pContainer As olelib.IOleContainer
Dim pEnumerator As olelib.IEnumUnknown
Dim pUnk As olelib.IUnknown
Dim pBrowser As WebBrowser
Set pContainer = WB.document
If pContainer.EnumObjects(OLECONTF_EMBEDDINGS, pEnumerator) = 0 Then
Set pContainer = Nothing
Do While pEnumerator.Next(1, pUnk) = 0
Set pBrowser = pUnk
If pBrowser.LocationURL Like "http://iport.sctcn.com/oi/action?SSOToken=*&ParameterType=ContainerInfo&ParameterValue=OOLU7530910&LocaleCode=zhs&moduleName=oi&logout=&loginUrl=" Then '可以在这里加条件判断得到指定的frame,基本可以根据url或者innerHTML中的某个关键字符
Set getFrames = pBrowser
Exit Function
End If
Loop
Set pEnumerator = Nothing
End If
End Function
[/code]
|
评分
-
1
查看全部评分
-
|