Закрыть диалоговое окно на странице
мне нужно вызвать некоторые действия внутри чужой веб-страницы. У меня есть этот код до сих пор:
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}");
но диалог, похоже, находится вне страницы, поэтому я не знаю, как вызвать . Как я могу закрыть окно?
2 ответов
вы не можете закрыть окно браузера программно. Что вы можете сделать, это заставить всплывающее окно в браузере. Это может сработать для вас:
window.confirm=function(){ return true; };
window.alert=function(){ return true; };
window.prompt=function(){ return "textOfMyChoice"; };
в основном, вставьте этот javascript перед нажатием кнопок. Если вы хотите позже восстановить поведение всплывающего окна, сохраните их в другой глобальной переменной.
Я полагаю, любой якорный тег в вашем примере имеет собственный диалог подтверждения javascript. Это диалоговое окно не закрывается программно.
но вы можете изменить javascript для всех элементов привязки и заменить диалог подтверждения своим пользовательским диалогом jQuery. таким образом, вы можете полностью контролировать этот диалог: закрыть, скрыть, установить тайм-аут и т. д.
преобразование
<a href="..." onclick="return confirm('are you sure?')" ... >...</a>
to
<a href="..." onclick="return openMyjQueryDialog('are you sure?')" ... >...</a>
Так, потребитель может продолжать с нормальным поведением, вашим скрипт может полностью контролировать все элементы диалога.