从Excel VBA调用JavaScript oncontextmenu

时间:2018-10-11 07:11:23

标签: javascript html excel vba web-scraping

我试图在Intranet上可用的网页上调用右键菜单。我正在从Excel宏中进行操作。仅当ueser在特定表中的元素上单击鼠标右键时,此菜单才可用。单击后,将显示一个带有四个选项的框。 我需要执行与该菜单中第四个选项相关的操作。

我在该宏中激活了以下引用: VBA,MS Excel 16.0,MS Office 16.0,MS Internet控件,MS HTML对象库,MS Forms 2.0,UiAutomationClient

我为以下HTML标记设置了有效的引用(所有标记均经过测试且100%准确):

  1. iframe
  2. 身体
  3. table(class“ tabela1_small”)-我引用了包含需要右键单击的数据的行
  4. div(id =“ pop”)
  5. span(Pokażkalkulację)

a piece of the HTML code of the page I am trying to automate

    Dim IE As InternetExplorer
    Dim Document As HTMLDocument
    Dim e As IHTMLElement
    Dim f As IHTMLElement
    Dim elements2 As IHTMLElementCollection
    Dim html_span As HTMLSpanElement
    Dim html_input As HTMLInputElement
    Dim html_body As HTMLBody



    Set iframeDoc = IE.Document.frames("list").Document
    Set html_input = iframeDoc.getElementsByName("akcja")(0) 'html_input = <INPUT id=akcja type=hidden value="pokaż kalkulację " name=akcja>
    html_input.Value = "pokaż kalkulację "


    'manipulating input field
    hWnd = IE.hWnd
    SetForegroundWindow hWnd
    SendKeys "~"
    html_input.Click
    html_input.FireEvent ("oncontextmenu")
    html_input.FireEvent ("onmouseover")  

    Set html_body = iframeDoc.getElementsByTagName("body").Item(0) ' <body oncontextmenu="javascript: CoM(); return false;">

    Call IE.Document.parentWindow.execScript("parent.pokaz_kalkul(dowod.numer)", "JavaScript") 'f na objIE.Document


    'manipulate span/div elements
    Set e = iframeDoc.getElementById("dowod") ' e = <DIV id=dowod>
    Set elements2 = e.getElementsByTagName("div")
    Set f = elements2.Item(3) ' f= <SPAN onclick="javascript: parent.pokaz_kalkul(dowod.numer)">Pokaż kalkulację </SPAN>

(e.Click         f。点击

不幸的是,没有任何火灾事件调用起作用(没有错误,但是什么也没有发生)。 execScript命令导致运行时错误-2147352319(80020101)。

有没有一种方法可以模拟右键单击表格元素,div或span? 还是可以直接调用此javascript parent.pokaz_kalkul(dowod.numer)而不需要单击任何内容?

0 个答案:

没有答案