im usando los botones http://sharethis.com/ para darles a los usuarios de un sitio web una forma sencilla de compartir contenido.¿Cómo crear dinámicamente "Compartir estos botones" con una URL personalizada con una función de JavaScript?
Tienen información sobre "botones personalizados" aquí: http://help.sharethis.com/customization/custom-buttons
Parece que para especificar la URL, en el ejemplo de todo lo que tienen es sólo html así:
<span class="st_sharethis" st_url="http://mycustomurl.com" st_title="Sharing Rocks!"
displayText="ShareThis"></span>
pero necesito ser capaz de crear dinámicamente botones sobre la marcha sin tener que volver a cargar la página.
Por lo tanto, en una aplicación flash que estoy construyendo tengo un "botón para compartir" que desencadena una función javascript en la página web que hace un fade "popup" en el centro de la pantalla que quiero mostrar botones. Dependiendo del botón de compartir al que haga clic, deberá tener una URL creada dinámicamente.
Es importante que cierren el cuadro de diálogo, luego haz clic en el botón compartir nuevamente, esperando que el código sobrescriba el código anterior con botones nuevos, con la nueva url/títulos.
Por lo tanto, he creado esta función de javascript que llamo desde el flash, al pasar la url de flash. Coloqué el script y todo dentro de mi div "popup", esperando que los botones se rendericen dentro de ese div.
function shareChannel(theurl)
{
//I cant seem to find an example of what to put here to load the buttons, and give them a custom URL and title
//finally display the popup after the buttons are made and setup.
displaypopup();
}
¿Alguien podría publicar un ejemplo de cómo podría hacer esto sin tener que volver a cargar la página?
EDIT: @Cubed
<script type="text/javascript">
function shareChannel(chaan)
{
document.getElementById('spID1').setAttribute('st_url', 'http://mycustomurl?chan='+chaan);
document.getElementById('spID1').setAttribute('st_title', 'Custom Title is ['+chann+'] it works!');
stButtons.locateElements();
centerPopupThree();
loadPopupThree();
}
</script>
Básicamente no pasa nada. Odio usar javascript porque realmente no tengo idea de cómo obtener mensajes de error o depurar. Cuando trabajo con flex, tengo un gran depurador/consola para resolver. Por lo tanto, lamento tener problemas para proporcionar más información. Lo noté cuando eliminé solo el
document.getElementById('spID1').setAttribute('st_url', 'http://mycustomurl?chan='+chaan);
document.getElementById('spID1').setAttribute('st_title', 'Custom Title is ['+chann+'] it works!');
Aparecerá la ventana emergente.
Pero si tengo el código setAttribute anterior dentro de la función, la ventana emergente nunca aparece, así que estoy asumiendo que algo en ese código está rompiéndola. ¿Alguna sugerencia? ¿O al menos una forma en que podría usar Chrome para decirme cuál es el error? Intenté la consola del elemento de inspección pero no había nada que apareciera allí cuando activé la función.
Además, en la parte superior de mi código que tenían uso de mí:
<script type="text/javascript">var switchTo5x=true;</script>
<script type="text/javascript" src="http://w.sharethis.com/button/buttons.js">
</script><script type="text/javascript">stLight.options({publisher:'mypubidgoeshere'});</script>
debo utilizar stLight.locateElements();
en lugar de stButtons.locateElements();
Hay un error en el código, que tiene 'alam' y 'Chaan', es por eso que no está funcionando, el cambio 'alam' a 'Chaan' por el título y debe hacer maravillas. Para el registro, las herramientas> Javacript console en chrome lo llevarán al depurador. Si vas allí antes de cambiar, debería tener un error 'Unbeught ReferenceError: chann no está definido' –