2016-04-26 5 views
18

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

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}");, но диалог, кажется, из страницы, так что я не знаю как вызвать кнопку OK. Как закрыть окно?

ответ

13

Вы не можете закрыть диалоговое окно браузера программно. Что вы можете сделать, так это поведение браузера с помощью браузера. Это может сработать для вас:

window.confirm=function(){ return true; }; 
window.alert=function(){ return true; }; 
window.prompt=function(){ return "textOfMyChoice"; }; 

В принципе, вставьте этот javascript, прежде чем нажимать на кнопки. Если вы хотите позже восстановить всплывающее поведение, сохраните их в другой глобальной переменной.

+1

Nice one !! ... Он работал с 'ie.Navigate (" javascript: (function() {window.confirm = function() {return true}})() ")', а затем 'anchor.click();' –

+0

Я понял это сработает. Обратите внимание, что это не ответ на вопрос, как «закрыть диалоговое окно на веб-странице», но ответ на вопрос о том, как «Предотвратить всплывающее диалоговое окно на веб-странице». –

+0

Действительно просто и впечатляет! .. Я никогда не замечал 'confirm', и эти методы были на объекте' window' –

0

Я полагаю, что любой якорный тег в вашем примере имеет встроенный диалог подтверждения javascript. Вы не закрываете программно это диалоговое окно.

Но вы можете изменить javascript для всех элементов привязки и заменить диалоговое окно подтверждения с помощью настраиваемого диалогового окна jQuery. таким образом, позволит Вам иметь полный контроль в этом диалоге: закрыть, скрыть, установить время ожидания и т.д. и т.п.

Transform

<a href="..." onclick="return confirm('are you sure?')" ... >...</a> 

в

<a href="..." onclick="return openMyjQueryDialog('are you sure?')" ... >...</a> 

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

+0

Как бы он обновил содержимое внутри web-страницы _someone else? Кроме того, он не упоминал jQuery –

Смежные вопросы