Vinx.info
Vincenzo Megale

Desarrollo Web, Barcelona

Creación Páginas Web

Optimización SEO buscadores

Backoffice y mantenimiento web

Carritos de la compra, TPV virtual

Desarrollo de Intranet y Extranet

Alojamiento y registro de dominios

Jueves, 25 de Agosto de 2011

Colocar el botón "Google +1" manteniendo una correcta validación html W3C

Siguiendo las instrucciones proporcionadas por Google para mostrar el nuevo botón 'Google +1' (como el que aparece en el pie de página de esta web), nos encontramos que nuestro html deja de superar la validación html proporcionada por el W3C.

El código consta de dos partes:

  1. En nuestra cabecera, llamaremos el javascript necesario:
    <script src="https://apis.google.com/js/plusone.js" type="text/javascript"></script>

  2. En el cuerpo de la página, allá donde queremos que aparezca el botón, colocamos:
    <g:plusone></g:plusone>

Y este último punto es el que genera el conflicto con el W3C, ya que "<g:plusone></g:plusone>" no es una etiqueta estandard.
Para solucionar el problema, basta con reemplazar dicha línea por estas otras:

<script type="text/javascript">
// <![CDATA[
document.writeln('<g:plusone></g:plusone>');
// ]]>
</script>

Finalmente, podréis añadir atributos como "size" cuyos posible valores son "small", "medium" (opción por defecto) y "big" y que afectarán evidentemente al tamaño del botón.
Este es el código utilizado en esta web:

<script type="text/javascript">
// <![CDATA[
document.writeln('<g:plusone size="big"></g:plusone>');
// ]]>
</script>


[ ver todos los artículos ]



Comentarios

Esta solución no es valida pra IE

Martin, el 05.09.2011

Hola Martín,
Google ha dejado de dar soporte a las versiones de IE inferiores a la 9, eso lamentablemente incluye su botón Google+ el cual no funciona en versiones de IE anteriores a la 9, independientemente de si se utiliza el script aquí expuesto o directamente el código proporcionado por Google.
Saludos

Vinx, el 05.09.2011

El botón si funciona en ie, funciona tanto en ie7, ie8 como ie9. Cuando no funciona es cuando se construye a través de javascript.
Un saludo.

Martin, el 05.09.2011

jeje esto empieza a ser intrigante, yo sinceramente no he conseguido verlo con IE7 (con IE8 posiblemente me equivocara, ahora no lo tengo a mano), tanto con el javascript publicado aquí como con el código proporcionado por google.
Ahora mismo acabo de probar entrando por ejemplo en www.viengo.com, con Firefox todo bien pero con IE7 sigue sin salirme el botón.

Vinx, el 05.09.2011

Efectivamente, valida bien en W3C pero el Internet Explorer, como siempre, toma su propia decision de no mostrar el boton (solo a traves de javascript). En el resto de navegadores se ve perfecto. Si alguien consigue que funcione en IE que avise, por favor!

Ruben - Rock lyrics, el 23.09.2011

Solución:

Utilizar <div class="g-plusone"></div> en vez de <g:plusone></g:plusone>

Martin, el 28.09.2011

Muy buena solución Martín!! sin embargo con este código no veo como poner el parámetro "size" para cambiar el tamaño del botón, he hecho varias pruebas y siempre sale el tamaño por defecto.

Vinx, el 28.09.2011

Para eso hay dos opciones:

1 De la forma <div class="g-plusone" data-size="standard" data-count="true"></div> pero esta no valida desgraciadamente.

2 La que estoy probando ahora que es coger el código fuente que genera la etiqueta directamente y ponerle la url adecuada en cada caso. Parece que funciona.

Martin, el 28.09.2011

Creo que conseguí ponerlo correctamente por fin. La forma sería así:

El botón lo pondríamos con <div class="g-plusone"></div>
y luego el tamaño se lo daríamos con jQuery de la forma jQuery('.g-plusone').attr("data-size","small");

Esta solución valida y funciona en todos los navegadores. Cuando lo probéis contadme haber si le encontráis algún problema.

Saludos.

Martin, el 28.09.2011

Hola,

Nunca he conseguido que me funcione. Utilizo Firefox 3.6 y lo veo en otras webs, pero no conswigo implementarlo. Agradecería un ejemplo completo, porque no hay manera.

Javier, el 29.09.2011

Hola, yo tampoco consigo verlo en las versiones anteriores a la 9 de IE.

Donde colocas el código de jQuery??

Salu2

David, el 11.10.2011

Solución para los que siguen teniendo problemas, en el body agregar este codigo en lugar del indicado arriba:
<script type="text/javascript">
// <![CDATA[
document.writeln('<g:plusone />');
// ]]>
</script>

Espero que os sirva de ayuda ^^

Adri, el 15.02.2012

PD: Con este codigo del post anterior tambien podeis meterle las etiquetas size o href, a prueba de w3 ;)

Adri, el 15.02.2012

Aquí les envío la solución para IE8 y anteriores (con el tamaño pequeño):
<!--[if lt IE 9]>
<div class="g-plusone"></div>
<script>
function cambiarTamano(){
$('.g-plusone').attr("data-size","small");
};
cambiarTamano();
</script>
<![endif]-->

si quieren cambiar el tamaño a "big" o "medium", sólo cambien el "small".

¡SI FUNCIONA!

isaac, el 21.02.2012






 


(c) 2000 - 2012 Vinx Desarrollo Web, Barcelona  |  Diseño original: Joan Picó Planas  |  Servicios Multimedia: aInternet.cat