[英]Clear Javascript Message Box from VBA
在控制网站(使用VBA)并尝试删除表中的所有选定项时,我看到一个Javascript弹出窗口,询问我是否真的要删除所有这些项(“确定”或“取消”)。 当这个弹出窗口时,我的vba代码停止,并且除非有人点击按钮,否则将不会执行任何其他操作。
我对此进行了相当多的研究,似乎从理论上讲可以更改HTML按钮的onClick事件,但是到目前为止,我还无法使其正常工作。 以下是按钮的HTML代码,后续的Javascript代码,然后是我的VBA代码。
HTML按钮
<p>Delete: <input type="button" name="button_Delete" value="Delete" onclick="doDelete('c');"> <span class="note">Deletes all selected charts.</span></p> <p>Move to: <select id="select_Lists" name="select_Lists">
HTML按钮后的Javascript
<a href="javascript:doDeleteList('169', 'C');">Delete List</a> |
VBA代码删除从HTML表中选择的所有内容
Dim ieDelete as HTMLInputButtonElement
SetieDelete = IE.Document.getElementsByName("button_Delte")(0)
Sleep(500)
ieDelete.removeAttribute("onClick")
Sleep(500)
ieDelete.setAttribute "onClick", "return true;"
Sleep(500)
ieDelete.Click
按原样运行VBA时,它将继续显示Javascript消息框。 我尝试添加ieDelete.setAttribute“ onClick”,“” ,但最终删除了整个事件,此后我无能为力。
并且...作为记录,我还看到了描述另一种选择的帖子,但我不知道如何在我的场景中使用它。 通过使用VBA自动化InternetExplorer来响应网站消息框
在此先感谢您的协助。
您可能会修改确认对话框本身:在调用ieDelete.Click
之前,使用以下VBA代码覆盖内置的javascript confirm
函数。
IE.Document.parentWindow.execScript "confirm = function() { return true; }"
(在调用ieDelete.Click
之前将其ieDelete.Click
)
每当请求确认对话框时,这将导致浏览器自动“单击”“确定”。
PS:此答案假定以下内容:
confirm
javascript调用。 execScript
。 其他版本可能将其称为eval
有关兼容性通知,请参见https://msdn.microsoft.com/zh-cn/library/ms536420%28v=vs.85%29.aspx 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.