2016-04-26 17 views
18

Ho bisogno di attivare alcune azioni all'interno della pagina web di qualcun altro. Ho questo codice finora:Chiudi finestra di dialogo sulla pagina web

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

Questa finestra viene mostrata:

enter image description here

ho cercato myDoc.activeElement.click(); e SendKeys.Send("{ENTER}"); ma la finestra di dialogo sembra essere fuori della pagina, in modo da non so come attivare il pulsante OK. Come posso chiudere la finestra?

risposta

13

Non è possibile chiudere una finestra di dialogo del browser in modo programmatico. Quello che puoi fare è dirottare il comportamento popup del browser. Questo potrebbe funzionare per te:

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

In pratica, inserire questo javascript prima di fare clic sui pulsanti. Se si desidera ripristinare in seguito il comportamento popup, memorizzarli in un'altra variabile globale.

+1

Bello !! ... Ha funzionato con 'ie.Navigate (" javascript: (function() {window.confirm = function() {return true}})() ")' e quindi 'anchor.click();' –

+0

Ho capito funzionerebbe Si noti che non è la risposta alla domanda su come "Chiudi finestra di dialogo sulla pagina Web" ma una risposta a come "Prevenire dialon popup sulla pagina web" –

+0

Davvero semplice e impressionante !! .. Non avevo mai notato 'confirm' e quei metodi erano nell'oggetto' window' –

0

Suppongo che qualsiasi tag di ancoraggio nell'esempio abbia una finestra di dialogo di conferma nativa per javascript. Non chiudere questa finestra di dialogo a livello di programmazione.

Ma è possibile modificare javascript per tutti gli elementi di ancoraggio e sostituire la finestra di conferma con la finestra di dialogo personalizzata di jQuery. in questo modo ti permettono di avere il pieno controllo su questa finestra di dialogo: chiudere, nascondere, impostare timeout ecc ecc

Transform

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

a

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

Così, l'utente può continuare con un comportamento normale, il tuo script può avere il pieno controllo su tutti gli elementi di dialogo.

+0

Come aggiornerebbe il contenuto all'interno della pagina web di qualcun altro? Inoltre, non ha menzionato jQuery –