javascript integratie met google translate api

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb op een site een formulier staan, wanneer dit gesubmit wordt worden er een aantal javascript functies verwerkt. Daarbinnen moet een google translati api javascript worden toegevoegd.

Probleem daarbij is dat deze google soms pas na een seconde klaar is, om het formulier goed te werken heb ik daarom een functie nodig die eerste de google translator aanroept en pas verder gaat met verdere verwerking als de google translator klaar is. Ik krijg dit vooralsnog niet voor elkaar.

De google functie (roept translatedReturn functie aan)

function doGoogleTranslate(str, inputlang, outputlang, tgtFldId){

google.language.translate(str, inputlang, outputlang, function(result) { if (!result.error) { translatedReturn(result.translation);}else{alert(result.error)}});

}

zoekformulier functie aangeroepene met form onsubmit="return checkSearchForm(1)"

function checkSearchForm(tp){
// doe allerlei dingen
return true
}

function translatedReturn(translatedString){

//document.searchForm.searchinput.value = translatedString;
document.getElementById("googleready").value='1';

}

Het punt is dus dat checkSearchForm pas verwekt kan worden als translatedReturn zijn werkt heeft gedaan, alleen hoe krijg ik dat voor elkaar? Iemand een goede oplossing hiervoor?

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Wat had je zelf al geprobeerd? Want een simpele boolean is al genoeg hier lijkt me (al kan ik de rest van de functionaliteit niet zien natuurlijk)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik heb van alles geprobeerd, bv onderstaande functie

het lijkt me dat die:

// checked of de google verwerken al klaar is, zo nee dan wordt de vertaal functie aangeroepen en googleready op 2 gezet

als googleready niet 1 is dan wordt deze functie na 5 seconden opnieuw aangeroepen.
doGoogleTranslate zou googleready 1 moeten zetten

ik zie vast iets stoms over het hoofd maar zelf zie ik het even niet.

function dosearchform(tp){

if (document.getElementById("googleready").value=='0'){
doGoogleTranslate(document.searchForm.searchinput.value, "nl", "en");
document.getElementById("googleready").value=='2'
}

if (document.getElementById("googleready").value != '1'){
setInterval(dosearchform(1),5000);
}
else {
return true;
}
}