2016-04-09 2 views
0

Я использую виджет Google Translate на своем веб-сайте, но я не хочу, чтобы он загружался, когда страница загружается, потому что она замедляет скорость загрузки и часто не используется. Я хотел бы иметь изображение вместо этого, и только если я нажму на это изображение, чтобы загрузить виджет.Как загрузить виджет 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- after-button-click) –

+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> 

Тогда вы либо добавить обработчик щелчка в скрипт, или использовать HTML OnClick, например:

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

Благодарим вас за этот код. Я попытался. Когда я нажимаю изображение, сценарий загружается, но изображение все равно остается, и каждый раз, когда я нажимаю на него, он открывает новые виджеты перевода. Я не знаю, как это решить: | – ForForce

+0

ok Вы хотите удалить изображение после нажатия? – yezzz

+0

Он работает! Спасибо! , Есть ли способ, который я могу сделать, чтобы показать руку, когда я наводил указатель мыши на изображение? – ForForce