javascript - 从 Excel VBA 调用 JavaScript oncontextmenu
问题描述
我正在尝试调用 Intranet 上可用网页上的右键菜单。我正在从 Excel 宏中执行此操作。此菜单仅在用户右键单击特定表中的元素时可用。单击时会显示一个带有四个选项的框。我需要执行与该菜单中的第四个选项相关的操作。
我在该宏中有以下活动引用:VBA、MS Excel 16.0、MS Office 16.0、MS Internet Controls、Ms HTML Object Library、Ms Forms 2.0、UiAutomationClient
我已经设置了对以下 HTML 标记的有效引用(都经过测试并且 100% 准确):
- 框架
- 身体
- table(class "tabela1_small") - 我引用了包含需要右键单击的数据的行
- div (id="pop")
- 跨度 (Pokaż kalkulację )
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.单击 f.单击
不幸的是,火灾事件调用都不起作用(没有错误,但没有任何反应)。execScript 命令导致运行时错误 -2147352319 (80020101)。
有没有办法模拟对表格元素、div 或 span 的右键单击?或者可以直接调用这个javascript parent.pokaz_kalkul(dowod.numer) 而无需点击任何东西?
解决方案
推荐阅读
- graphql - 添加 graphql 解析器时,Flyway 迁移停止工作
- typescript - 如何使用 AWS CDK 检查自定义 VPC 是否已存在?
- c - c中链表中的原子和一致性(ACID)插入
- mysql - 如何在 WHERE 中使用 AS 和别名?
- python - 单击不是 SELECT 元素的下拉菜单的第一个元素-Python selenium
- python - 更改用户密码和用户名后用户未保持登录状态
- tomcat - 带有 Buildpack/Paketo 的 Jakarta EE 应用程序的路径是什么?
- android - 使用服务时从最近的任务中删除应用程序不会被杀死
- c++ - GCC 优化忽略循环条件
- android - Flutter PlayStore Distribution APK 无法正常工作,无法加载,卡在启动画面