由于“浏览器”中的 URL 链接而启动 javascript 功能
Posted
技术标签:
【中文标题】由于“浏览器”中的 URL 链接而启动 javascript 功能【英文标题】:Starting javascript function due to URL Link in "Browser" 【发布时间】:2010-10-07 18:04:20 【问题描述】:我正在使用 wininet 从一些主页获取源代码,然后我对其进行分析以获取一些信息。我在 Excel 中使用 VB 来做到这一点。 所有这些都运行良好,但现在我想从一个特殊页面获取信息。
我必须打开此页面并单击一个链接才能转到包含所需信息的一侧。 我的问题是,这个链接是一个 javascript 函数。所以我的问题是:是否可以通过 URL 打开一侧并启动 javascript 功能?
我使用以下 VB 函数:
'API-Deklarationen:
Private Declare Sub InternetCloseHandle Lib "wininet.dll" ( _
ByVal hInet As Long)
Private Declare Function InternetOpenA Lib "wininet.dll" ( _
ByVal sAgent As String, ByVal lAccessType As Long, _
ByVal sProxyName As String, ByVal sProxyBypass As String, _
ByVal lFlags As Long) As Long
Private Declare Function InternetOpenUrlA Lib "wininet.dll" ( _
ByVal hOpen As Long, ByVal sUrl As String, _
ByVal sHeaders As String, ByVal lLength As Long, _
ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Sub InternetReadFile Lib "wininet.dll" ( _
ByVal hFile As Long, ByVal sBuffer As String, _
ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long)
'Enumeration für Internet:
Public Enum InternetOpenType
IOTPreconfig = 0
IOTDirect = 1
IOTProxy = 3
End Enum
Public s As String
Public Function OpenURL( _
ByVal URL As String, _
Optional ByVal OpenType As InternetOpenType = IOTPreconfig _
) As String
Const INET_RELOAD = &H80000000
Dim hInet As Long
Dim hURL As Long
Dim Buffer As String * 2048
Dim Bytes As Long
'Inet-Connection öffnen:
hInet = InternetOpenA( _
"VB-Tec:INET", OpenType, _
vbNullString, vbNullString, 0)
hURL = InternetOpenUrlA( _
hInet, URL, vbNullString, 0, INET_RELOAD, 0)
'Daten sammeln:
Do
InternetReadFile hURL, Buffer, Len(Buffer), Bytes
If Bytes = 0 Then Exit Do
OpenURL = OpenURL & Left$(Buffer, Bytes)
Loop
'Inet-Connection schließen:
InternetCloseHandle hURL
InternetCloseHandle hInet
End Function
【问题讨论】:
【参考方案1】:应该是可以的。尝试使用 InternetExplorer-Control,它提供了您所需要的一切: 导航和脚本访问文档的能力。
InternetExplorer-Control
Document-Property
【讨论】:
以上是关于由于“浏览器”中的 URL 链接而启动 javascript 功能的主要内容,如果未能解决你的问题,请参考以下文章
controller中的路径明明书写正确,浏览器中访问的url也拼接正确,但报404