2016-04-09 12 views
0

私のウェブサイトでGoogle Translate Widgetを使用していますが、読み込み速度が遅くて頻繁に使用されないため、ページが読み込まれるときに読み込みたくありません。代わりにイメージがあり、そのイメージをクリックしてウィジェットをロードする必要があります。クリックでGoogle Translateウィジェットを読み込む方法は?

今のところ、私はこのコードを持っている:

<script type="text/javascript"> 


function googleTranslateElementInit() { 
    new google.translate.TranslateElement({pageLanguage: 'ro', 
     includedLanguages: 'af,ar,de,en,es,fr,hu,it,ja,no,ro,ru,tr,zh-CN', 
     layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 
     autoDisplay: false}, 'google_translate_element'); 
    } 

    var googleTranslateScript = document.createElement('script'); 
    googleTranslateScript.type = 'text/javascript'; 
    googleTranslateScript.async = true; 
    googleTranslateScript.src = 'http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'; 
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(googleTranslateScript); 
</script> 

を誰かが助けることはできますか?

+0

をそれが役立つかもしれないリンクの下を参照してください。あなた [http://stackoverflow.com/questions/9095971/display-google-translate-widget-after-button-click](http://stackoverflow.com/questions/9095971/display-google-translate-widget-ボタンをクリックしてから) –

+0

私はそれを手に入れません! :| 。私はこの問題を解決する答えを見つけることができません。 – ForForce

+0

本当にjQueryを使用していますか?私が見ることができるのは、ネイティブJavaScriptです。これは批判ではありませんが、むしろjQueryを使用しない場合は、そのタグを削除することをお勧めします。 –

答えて

1

関数内のスクリプトローディング部分を入れて:

<script type="text/javascript"> 
    function googleTranslateElementInit() { 
    new google.translate.TranslateElement({pageLanguage: 'ro', 
     includedLanguages: 'af,ar,de,en,es,fr,hu,it,ja,no,ro,ru,tr,zh-CN', 
     layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 
     autoDisplay: false}, 'google_translate_element'); 
    } 

    function loadGoogleTranslate() { 
    var googleTranslateScript = document.createElement('script'); 
    googleTranslateScript.type = 'text/javascript'; 
    googleTranslateScript.async = true; 
    googleTranslateScript.src = 'http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'; 
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(googleTranslateScript); 
    } 
</script> 

次にあなたが例えば、スクリプトにクリックハンドラを追加したり、onclickのHTMLを使用して、次のいずれか

<img onclick="loadGoogleTranslate(); this.remove()"> 
+0

このコードをありがとうございます。私が試したのは、画像をクリックするとスクリプトがロードされていますが、画像が残っていて、クリックするたびに新しい翻訳ウィジェットが開きます。私はこれを解決する方法を知らない:| – ForForce

+0

OKをクリックしてイメージを削除しますか? – yezzz

+0

それは働いている!ありがとうございました! 。イメージの上にマウスを置いたときに手を見せる方法はありますか? – ForForce

関連する問題