Закрыть диалоговое окно на веб-странице
Мне нужно вызвать некоторые действия внутри другой веб-страницы. У меня есть этот код:
IHTMLElementCollection DeleteCollection =
(IHTMLElementCollection)myDoc.getElementsByTagName("a");
foreach (HTMLAnchorElement buttonDelete in DeleteCollection){
if (buttonDelete.title != null && buttonDelete.title.StartsWith("Delete")){
buttonDelete.click();
// problem goes here
myDoc.activeElement.click();
SendKeys.Send("{ENTER}");
}
}
Появится это диалоговое окно:
![введите описание изображения здесь]()
Я пробовал myDoc.activeElement.click();
и SendKeys.Send("{ENTER}");
, но диалоговое окно кажется вне страницы, поэтому я не знаю, как вызвать кнопку OK
. Как закрыть окно?
Ответы
Ответ 1
Вы не можете закрыть диалоговое окно браузера программно. Что вы можете сделать, так это поведение браузера с помощью браузера. Это может сработать для вас:
window.confirm=function(){ return true; };
window.alert=function(){ return true; };
window.prompt=function(){ return "textOfMyChoice"; };
В принципе, вставьте этот javascript, прежде чем нажимать кнопки. Если вы хотите позже восстановить всплывающее поведение, сохраните их в другой глобальной переменной.
Ответ 2
Я полагаю, что любой якорный тег в вашем примере имеет встроенный диалог подтверждения javascript.
Вы не закрываете программно этот диалог.
Но вы можете изменить javascript для всех элементов привязки и заменить диалоговое окно подтверждения с помощью настраиваемого диалогового окна jQuery. таким образом, вы можете иметь полный контроль над этим диалогом: закрыть, скрыть, установить тайм-аут и т.д. и т.д.
Transform
<a href="..." onclick="return confirm('are you sure?')" ... >...</a>
к
<a href="..." onclick="return openMyjQueryDialog('are you sure?')" ... >...</a>
Таким образом, пользователь может продолжить нормальное поведение, ваш script может полностью управлять всем элементом диалога.