7

js で Google プラス +1 ボタンを動的に追加する方法はありますか? ページには共有する多くの 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>

そのため、create document メソッドを jQuery から clean Javascript に変更しました。IE8はそれで動作します!

4

1 に答える 1

3

解決策は次のとおりです。

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

そのため、create document メソッドを jQuery から clean Javascript に変更しました。IE8はそれで動作します!

于 2011-09-13T20:54:15.067 に答える