Sto utilizzando la traduce il widget di su uno dei miei siti con il seguente google forniti di codice:Google Translate Widget - Traduzione di callback completa
<div id="google_translate_element"></div><script type="text/javascript">
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'en', layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element');
}
</script><script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
<script>
Il mio problema: Il traduce corre dopo che la pagina è stata caricata, ma io ha anche uno script che dimensiona automaticamente i miei elementi di navigazione principali in base alla loro larghezza.
Viene eseguito prima del termine della conversione, quindi viene ridimensionato in base alle etichette inglesi non tradotte. Una volta che il traduttore ha modificato il testo di navigazione, gli elementi di navigazione devono essere ridimensionati per adattarsi alle parole appena tradotte poichè potrebbero essere di dimensioni diverse (larghezza) rispetto all'inglese.
Ho provato a chiamare il codice di traduzione di Google prima di eseguire il codice per ridimensionare la navigazione principale, ma il traduttore viene eseguito in modo asincrono, quindi il mio codice viene eseguito prima che il traduttore sia completo.
C'è un evento di richiamata generato quando la traduzione è completa (o un modo per rilevare quando la traduzione è completa), quindi posso aspettare prima che tenti di ridimensionare la navigazione?
Inoltre, ho bisogno di eseguire uno script DOPO che la pagina ha finito di tradurre.
Non ho alcun esempio, ma potresti provare ad aggiungere una chiamata di funzione all'interno di googleTranslateElementInit ..? Cioè function googleTranslateElementInit() { new google.translate.TranslateElement (...); myFuncInvocation(); } – EricG
Provato quel Eric, lo stesso problema con la chiamata di google tradurre prima del mio codice. Esegue in modo asincrono quindi ritorna immediatamente dalla chiamata google.translate.TranslateElement() (cioè prima che la traduzione sia finita) - aggiornerò la mia domanda – RichardAtHome
Onestamente preferirei vedere un esempio in cui viene eseguito. Quello che puoi fare è inserire un punto di interruzione nel "nuovo google.translate .." nel webkit e provare a eseguire il debug e vedere se è possibile aggiungere gestori o facoltativi gestori esistenti predefiniti che potrebbero essere richiamati. – EricG