[英]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.