2011-09-13 13 views
7

Esistono modi per aggiungere Google +1 pulsante più di JS dinamicamente? Ho bisogno di questo perché una pagina ha molti URL da condividere e sono ottenuti da AJAX. Quindi, quando ho bisogno dell'URL, voglio generare "+1" in alcune parti della pagina.Aggiungi Google plus +1 pulsante in modo dinamico e IE8 problema

Ho scritto il codice di prova che funziona in tutti i browser tranne IE8 (IE7 non è supportato da Google a tutti):

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

per favore potete aiutarmi?

UPD: fisso. La soluzione è qui sotto:

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

Così, appena cambiato creare metodo documento da jQuery per pulire Javascript. IE8 funziona con quello!

+0

Si dovrebbe pubblicare il tuo fix come una risposta in modo che possa essere contrassegnato come la risposta corretta. Questo tirerà fuori la tua domanda dalla lista senza risposta su SO. –

+0

Grazie! Non lo sapevo ... Fatto. –

+0

Puoi anche accettare la tua risposta (-: –

risposta

3

La soluzione è qui sotto:

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

Così, appena cambiato creare metodo documento da jQuery per pulire Javascript. IE8 funziona con quello!

Problemi correlati