Динамически добавьте кнопку Google плюс +1 и проблему с IE8 - PullRequest
7 голосов
/ 13 сентября 2011

Есть ли способы динамически добавить кнопку Google плюс +1 к js?Я нуждаюсь в этом, потому что на странице есть много URL-адресов для совместного использования, и они получены AJAX.Поэтому, когда я получаю необходимые URL-адреса, я хочу создать "+1" в некоторых местах страницы.

Я написал тестовый код, который работает во всех браузерах, кроме IE8 (IE7 не поддерживается Google навсе):

<div class="googlePlusBtn"></div>
<a href="#" class="addGooglePlus">Click me!</a>
<script type="text/javascript">
jQuery(function(){
    jQuery('.googlePlusBtn').html('<g:plusone annotation="inline"></g:plusone>');
    jQuery('a.addGooglePlus').click(function()
    {
        var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
        po.src = 'https://apis.google.com/js/plusone.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
        return false;
    })
})
</script>

Не могли бы вы мне помочь?

UPD: Исправлено.Решение ниже:

<div id="googlePlusBtn"></div>
<a href="#" class="addGooglePlus">Click me!</a>
<script type="text/javascript">
jQuery(function(){
            var po = document.createElement('g:plusone');
            var s = document.getElementById('googlePlusBtn');
        s.appendChild(po);
    jQuery('a.addGooglePlus').click(function()
    {
        var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
        po.src = 'https://apis.google.com/js/plusone.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
        return false;
    })
})
</script>

Итак, просто изменили метод создания документа с jQuery для очистки Javascript.IE8 работает с этим!

1 Ответ

3 голосов
/ 14 сентября 2011

Решение ниже:

<div id="googlePlusBtn"></div>
<a href="#" class="addGooglePlus">Click me!</a>
<script type="text/javascript">
jQuery(function(){
            var po = document.createElement('g:plusone');
            var s = document.getElementById('googlePlusBtn');
        s.appendChild(po);
    jQuery('a.addGooglePlus').click(function()
    {
        var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
        po.src = 'https://apis.google.com/js/plusone.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
        return false;
    })
})
</script>

Итак, просто изменили метод создания документа с jQuery для очистки Javascript.IE8 работает с этим!

...