javascript - 使用 VBA 自动化关闭 JavaScript 警报

标签 javascript internet-explorer vba automation alert

我正在寻找一种方法来关闭在加载网页时加载的 Javascript 弹出窗口/消息框(即不是新的 IE 窗口,而是脚本化的 alert())。

我目前的代码可以将数据加载到搜索表单中,运行搜索,从结果中检索所需的信息,退出搜索,然后继续处理列表中的下一项。在某些情况下,搜索结果中会丢失一条关键信息。发生这种情况时,页面加载时页面上的 JavaScript 会弹出消息,让用户知道信息丢失。通过自动化,代码会暂停(等待)框清除后再继续,并且用户必须单击“确定”按钮才能执行此操作。

(我无法直接更改页面的源脚本,因为这超出了我的工作职责范围。另外,保留此功能供一般用途更重要;它实际上只会受益我正在创建这个小用途函数。)

虽然我无法更改源脚本,但我找到了 example如何通过更改加载的脚本来防止显示弹出窗口/警报。但是,它与已加载的页面相关,并且对我来说并不真正起作用(据我所知)。

IE.Document.getElementById("clearRelItems").removeAttribute "onClick"
IE.Document.getElementById("clearRelItems").setAttribute "onClick", "return true;"

是否可以在页面完全加载之前使用此方法进行更改?即,这可以用来以某种方式绕过/规避页面加载时的函数调用吗?

我了解 sendkeys,但如果可能的话,我宁愿避免使用此选项(如果没有其他替代方案,我可能最终会使用此选项)。此功能旨在由用户启动,然后在后台运行,因为它需要一些时间才能完成。

我已经考虑按照 @Kyle 的建议获取 XML,但我不相信我足够熟练,无法使此方法发挥作用。

我还能如何绕过警报?有没有办法真正激活警报上的“确定”按钮?可以通过其他方式绕过页面的警报/加载吗?

最佳答案

一种解决方法可能是识别脚本何时卡住,然后只需发送击键“enter”即可关闭弹出窗口。

关于javascript - 使用 VBA 自动化关闭 JavaScript 警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9486847/

相关文章:

javascript - JS 和 HTML5 入门

java - 通过Java代码生成JavaScript页面时转义字符问题?

javascript - 如何在 IE8 上使用 setAttribute 而不是使用 style.cssText 来更改样式属性

excel - 将多个工作表复制到 VBA 工作簿本身

excel - 如何根据另一个工作表中的值填充不同工作表中的单元格,反之亦然

javascript - 在 Facebook iFrame 选项卡页面中请求权限

javascript - jQuery mouseenter/mouseleave html()-交换问题

vba - 暂停 VBA 循环以允许编辑工作表(无论有或没有用户窗体)

javascript - 在 Internet Explorer 中下载动态 CSV

c++ - 为什么 IHTMLImgElement 方法 put_src 在从线程调用时返回 E_OUTOFMEMORY?