Вызов JavaScript по контекстному меню из Excel VBA - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь вызвать меню правой кнопки мыши на веб-странице, доступной во внутренней сети.Я делаю это из макроса Excel.Это меню доступно только тогда, когда пользователь выполняет щелчок правой кнопкой мыши по элементу в определенной таблице.При нажатии отображается окно с четырьмя параметрами.Мне нужно выполнить действие, которое связано с четвертой опцией в этом меню.

В этом макросе активны следующие ссылки: VBA, MS Excel 16.0, MS Office 16.0, MS Internet Controls, Ms HTML ObjectБиблиотека, MS Forms 2.0, UiAutomationClient

Я установил действительные ссылки на следующие теги HTML (все проверены и точны на 100%):

  1. iframe
  2. body
  3. таблица (класс "tabela1_small") - у меня есть ссылка на строку, содержащую данные, которые нужно щелкнуть правой кнопкой мыши
  4. div (id = "pop")
  5. span(Pokaż kalkulację)

часть HTML-кода страницы, которую я пытаюсь автоматизировать

    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.Click

К сожалению, ни один из вызовов событий пожара не работает (без ошибок, но ничего не происходит). Команда execScript вызывает ошибку во время выполнения -2147352319 (80020101).

Есть ли способ имитировать щелчок правой кнопкой мыши?на элемент таблицы, div или span? Или может это javascript parent.pokaz_kalkul (dowod.numer) вызываться напрямую без необходимости что-либо нажимать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...