Закрыть диалоговое окно на странице

мне нужно вызвать некоторые действия внутри чужой веб-страницы. У меня есть этот код до сих пор:

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}");
    }
}

этот диалог всплывает:

enter image description here

пробовал 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>

Так, потребитель может продолжать с нормальным поведением, вашим скрипт может полностью контролировать все элементы диалога.