由于“浏览器”中的 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

超链接中的和号导致 W3C 验证失败

由于授权,无法访问 S3 预签名 URL [重复]

如何在外部浏览器而不是应用内(instagram)中打开链接?

隐藏Url中的参数

在WinRT中的默认Web浏览器中打开URL