2013-08-11 16 views
5

Sto sviluppando un'applicazione desktop in Delphi XE4 utilizzando il componente TChromium per visualizzare la pagina web di Google Voice.Simula fai clic su DIV

ho bisogno di avviare una chiamata di programmazione e non riesco a trovare un modo per attivare il codice javascript dietro il pulsante (è un DIV) "CONNECT":

enter image description here

TChromium permette di eseguire codice javascript e sono già riuscito a simulare il clic sul pulsante "CALL" utilizzando un codice javascript che simula l'evento chiave utilizzando il carattere "c" che visualizza il pannello. Funziona perché Google Voice ha scorciatoie e "c" è una scorciatoia valida per avviare una chiamata. Anche con javascript posso impostare il numero nel campo di inserimento. Il mio problema principale è che non so come simulare un clic su "CONNECT":

enter image description here

Come si può vedere, non v'è alcun ID, non onClick e non v'è alcun collegamento a innescare Connect pulsante.

posso ottenere un riferimento alla presente div utilizzando il seguente codice:

document.getElementById(":87.mi").children[0].children[0].children[5].children[1].children[0].children[0].children[0].children[1]; 

ma non è possibile innescare nulla aggiungendo .Click(). Presumo che sia perché click() attiverà il metodo onClick che non è definito. C'è un modo per sapere quale codice javascript viene eseguito quando qualcuno fa clic su questo div?

Se il focus è nell'input "Numero da chiamare", posso premere "TAB" per navigare su "Telefono da chiamare con", quindi su "Ricorda su scelta" e infine su "Connetti" dove posso premere Inserisci la chiave per farlo funzionare anche. Ho provato ad usare lo stesso codice come all'inizio per simulare il pulsante CALL, ma questa volta con TAB (keycode 9 anziché 67) e non funziona perché lo stato attivo non si muove.

ho cercato di farlo a livello di codice con Delphi usando anche mouse_event, keybd_event, PostKeyExHWND, PostKeyEx32 e PostMessage senza risultati, come la messa a fuoco non si muove lontano da "Numero da chiamare"

L'unica opzione che funziona ormai è spostare il mouse con delphi usando SetCursorPos e simulare un clic su quel pulsante calcolando le coordinate ma questa sarà la mia ultima opzione da scegliere come preferirei un codice javascript per farlo.

Qualsiasi suggerimento è benvenuto!

+0

Preferisci una soluzione JS vanilla a jQuery? Avete una console disponibile? L'evento si innesca con 'document.getElementsByClassName ('goog-button-base-content') [0] .click()'? – DevlshOne

+0

Penso che JQuery non sia incluso in questa pagina web. Se è possibile includerlo dinamicamente è ok. Il link di questa pagina web è http: // google.com/voice ma devi essere negli Stati Uniti e innanzitutto registrare un numero di telefono. –

+0

Quindi sono fuori da questo gioco ... Quindi aggiungerò un link a ['the question'] (http://stackoverflow.com/q/1668619/960757) chiedendo la soluzione più corretta, per l'utilizzo dell'API ufficiale per questo servizio. – TLama

risposta

-1

Suggerisco la prossima soluzione.

in un file JavaScript che devono essere importati dalla vista, inserire il codice seguente:

$(".goog-button-base-content").click(function(){ 
    //CODE HERE 
}); 

Quello che fai qui è che ogni volta che abbiamo premuto il div che ha questa classe, si inizierà la logica dentro "il codice qui"

(Ci scusiamo per il mio cattivo inglese)

spero sia utile. Ci vediamo

Problemi correlati