Errores Javascript

Jticker para JQuery, mejorado

Icono de Desarrollo webJticker es un “plugin” que usa JQuery (como ya quizá sea más que notable: la librería JavaScript de mis amores), sencillo, limpio y eficaz para mostrar un canal RSS o XML en todo caso e[...]

  • 16
  • mar
  • 2008

Publicado por J.A.Cobo. Guardado en Desarrollo web, JavaScript, Programación.
hace 1 año y 12 meses No hay comentarios

Jticker es un “plugin” que usa JQuery (como ya quizá sea más que notable: la librería JavaScript de mis amores), sencillo, limpio y eficaz para mostrar un canal RSS o XML en todo caso en tu sitio web usando un par de efectos prácticamente.
Como digo es un plugin sencillo, limpio y eficaz… así que no le hace falta mucho más ya que hay otras opciones si quieres algo más sofisticado, además es muy personalizable a nivel de opciones o si le metes mano al código… como he hecho yo :mrgreen:

En este caso,… lo cierto es que he perdido un poco (no uso SVN ni nada parecido para esto ^^) el hilo de mis modificaciones pero, la más importante por decirlo de alguna manera, es una opción que en mi opinión considero bastante relevante, que es la posibilidad de decidir sobre
Mostrar la descripción de cada Item o no

Así, ahora añadiremos al script dicha opción:
1. Primero, añadiremos el parámetro a la función:
Inicio del Script, variable opciones:

Añadimos el parámetro: showdesc: false,

12
13
14
15
16
17
18
19
20
21
22
23
24
	// TODO: Remove the newwindow option
	var options = {
	TickerID: "",
	delay: 1000,
	newwindow: false,
	showdesc: false,
	url: "tickerdata.xml",
	transition: "slide",
	speed: "slow",
	contentcounter: -1,
	ArrayIndex: -1,
	dataXML: {
},

Para después dejar los parámetros de inyección del HTML de la siguiente manera:

41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Item = $("item", options.dataXML).get(options.contentcounter);
Title = $("title", Item).text();
URL = $("link", Item).text();
Desc = $("description", Item).text();
TickerHTML = '<div class="JTickerTitle"><strong class="yellow">Noticias:</strong> <a href="' + URL + '"';
 
// Options:
// TODO: Remove this attribute!
// New Window Option: Deprecated by Covi Mod, Not Accesible! and no valid to Standars Compliance W3C.
if (options.newwindow) {
	TickerHTML += ' ';
}
// Description Option:
if (options.showdesc == false) {
	TickerHTML += ' title="' + Desc + '">' + Title + '</a></div>';
} else {
	TickerHTML += ' title="Leer la noticia completa: '+ Title +'">' + Title + '</a></div><div>' + Desc + '</div>';
}
// End Options.

Lo que hacemos simplemente es cambiar el código original (que era el último else sin sentencias) para añadir la sentencia e inyectar un código u otro según la opción para la mostrar la descripción (showdesc).

En mi caso, he optado por incluir la descripción en el atributo title del vínculo.
Y… me queda también eliminar la opción de nueva ventana con el atributo no accesible e intrusivo , recordemos que nuestra obligación en estos tiempos de la web es:
devolver el control al usuario“, es decir, que él mismo decida si quiere o no “abrir el enlace en una nueva ventana” (Ver primer nota inferior).

El uso, en mi caso, sería el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
	//<![CDATA[
	// Inicializando JQuery con documento renderizado:
	$(document).ready(function() {
		// Ticker News RSS:
		$("#news_ticker").jticker({
			delay: 10000,
			showdesc: false, // Forcing not show the description.
			url: "tickerdata.xml",
			transition: "fade",
			speed: 500
		});
	});
/	/ Fin JQuery
//]]>
</script>

Nota 1: Para el tema de accesibilidad y JavaScript no intrusivo podemos usar JQuery o CSS 2.1 como ya he comentado en otras ocasiones:
Un ejemplo sería, el ya comentado selector de CSS para vínculos externos, donde además uso una clase estándar de CSS para los navegadores sin soporte +CSS2.1 (.post a.external):

(Nota: Es obvio que se puede o debe omitir la clase .post):

1
2
3
4
5
6
7
8
9
#content .post a[href^="http:"], .post a.external {
	padding-right:16px;
	background:url("img/external.gif") no-repeat right;
}
/* Internos, anulamos: */
#content .post a[href^="http://culturadigital.org"], #content .post a[href^="http://www.culturadigital.org"] {
	padding-right:0px;
	background:none;
}

Con JQuery es igual o más sencillo puesto que también usa XPath y las posibilidades son tan abrumadoras como divertidas:
Imaginemos que tenemos una clase para vínculos en otro idioma (xml:lang debería ser un atributo obligatorio en relación a la accesibilidad):

1
2
3
4
5
6
7
8
9
// Idiomas, icono para identificar el enlace más texto:
$('a').each(function(index) {
	var $this = $(this);
	var languageLink = $this.attr("xml:lang");
	if(languageLink == 'en') {
		$(this).addClass("ukLink");
		$(this).attr({ title: this.title + ", en inglés"});
	}
});

De esta manera añadimos la clase a los vínculos con el atributo de lenguaje en inglés… igualmente, pero mucho más pesado y complicado, sería intentar mediante PHP obtener el idioma del vínculo enlazado y añadir el atributo de lenguaje oportuno… pero se imagina, no?, pesadísimo chequear todos los vínculos de un documento y encima enlazar a ellos para comprobar su lenguaje.

En mi opinión es mejor establecer tu lenguaje predefinido para todo el sitio e informar de los vínculos en otro idioma…, es lo lógico.

Bien, el ejemplo anterior es la misma técnica para usar con enlaces externos (añadir la clase external dependiendo del atributo href -> $(this).attr("href");), así informamos e damos la posibilidad al usuario de decidir qué hacer sobre ese vínculo externo.

Nota 2: El blog lo tengo bastante descuidado :( pero en el sitio web que llevo se pueden encontrar muchos ejemplos como éste, de accesibilidad, de JavaScript, Ajax y en concreto JQuery y de cómo convertir Wordpress en un CMS en toda regla ;)

PD: Me hubiera gustado comunicarlo al autor pero el registro en su blog no va y no hay otro medio de contacto, al menos, yo no lo he encontrado :(

Acerca del autor

Avatar del autor J.A.Cobo, «Geek» apasionado por la tecnología, la historia y la aviación con especial interés en el Desarrollo Web basado en estándares, la aplicación semántica de la web y la accesibilidad en la misma. Hubo un tiempo en el que también escribía relatos, principal inspiración para iniciar un «blog».

No hay comentarios.
TrackBack URL
Compartir en:
Menéame
Del.icio.us
Google
Technorati

Aún no hay comentarios.

Dejar un comentario.no seas tímido

Campos personales


¿Qué opinas?

Licencia y acuerdo

Logo Creative Commons Los datos introducidos en este formulario se tratarán, en matería de seguridad, de acuerdo a la normativa española sobre protección de datos ( LOPD ) pese a no estar sujetos a ella. Los contenidos pasarán a ser liberados para Cultura Digital.org bajo las licencias Creative Commons BY-SA y GFDL1.3 como una obra derivada de la que el autor mantendrá el copyright.
Asegúrate de entender estos términos antes de enviar tu comentario.

Artículo 2: Ámbito de aplicación.
[...]
Punto 2. El régimen de protección de los datos de carácter personal que se establece en la presente Ley Orgánica no será de aplicación:
a) A los ficheros mantenidos por personas físicas en el ejercicio de actividades exclusivamente personales o domésticas.
[...]

El autor del blog, Juan Antonio Cobo, se reserva el derecho a decidir sobre la publicación de los comentarios de acuerdo a la lógica común, las buenas maneras y la relevancia de los mismos con la entrada.

Avatar en TwitterJuan Antonio Cobo
JuanAntonioCobo

  • http://blog.culturadigital.org/acerca-de - 19
  • @glinfolaguardia A ver si kedams para actualizar la sección, hay muxo en glinfo.es Ah, y nolvides q la foto del castillo va como CC-BY-SA ;) (vía web).
    - hace 6 horas y 15 minutos
  • @pedrerol El «majo» de Guti será como sea pero dijo la pura verdad y realidad del Madrid. Y no olvides que su pase dio pie a la indv. de CR9 (vía web).
    - hace 6 horas y 18 minutos
  • Confirmado, no recomendaré jamás Telefónica ADSL; más vale malo conocido: ya.com (vía Do).
    - hace 1 día y 10 horas
  • Qué verguenza Telefónica, hacen contratos de 6megas en centrales al 110% de abonados, jopu*** (vía Do).
    - hace 1 día y 11 horas
  • @sirolopez Pellegrini llegará a loq sea, pero da la impresión de no tener alma para el Madrid. Yo dije que Lass&Guti se anulan, dsd Liv'pool (vía web).
    - hace 1 día y 21 horas
  • Guti&Lass nunca,parc mentira@sirolopez "Con Lass Y Diarra le metimos seis al zaragoza".Pellegirni dixit.¡Vale!..por si acaso oy no lo pruebs (vía web).
    - hace 2 días y 1 hora
  • Pero donde vas con Lass y Guti juntos, y con Kaká y dejarte a Van der var, donde vas??! (vía Do).
    - hace 2 días y 2 horas
  • @Buenafuente ¿Un chiste en contra del Barça???, ole ;) (vía web).
    - hace 2 días y 23 horas
  • @sirolopez Vuelve por favor, y trae la cordura a @PuntoPelota jeje (vía web).
    - hace 2 días y 23 horas
  • @PuntoPelota Pero como puede decir Roncero que quiere a Lass y Guti!, es que no se acuerda del Liverpool?? solo falta que pida a Gago! dios (vía web).
    - hace 2 días y 23 horas
  • Por Dios cada día va peor Punto Pelota, que asco y qué poco fútbol se ve ahí. (vía Do).
    - hace 3 días
  • Me cago en el put* calvo de HP, iniciativa ya! ^.^! (vía Do).
    - hace 3 días y 11 horas
  • Test Twitter vía Gnome Do. (vía Do).
    - hace 1 semana y 1 día
  • Los Óscars; este año se debería hacer justicia de una vez a esos dos grandes: Sandra y Bridges. Viendo: Días de cine. (vía Do).
    - hace 1 semana y 1 día
  • @ZeroFx Creo que aún sigue caído; al menos tarda un huevo en cargar ;) PD: Twitter tampoco va muy fino que digamos. (vía web).
    - hace 1 mes
  • @glinfolaguardia Pues deberías empezar x restringir el reporte de errores, al menos en producción y solo al admin. Webroot al descubierto ;) (vía web).
    - hace 1 mes y 1 semana
  • d(-_-)b ♬ Our Truth por Lacuna Coil de Karmacode ♬ (vía Do).
    - hace 1 mes y 1 semana
  • Puta casualidad se cuelga ahora precisamente Wikipedia... ¡coño ya! grrr, joder! (vía Do).
    - hace 2 mess
  • I favorited a YouTube video -- Leona Lewis "I See You" video http://youtu.be/O4jYr4502M0?a (vía Google).
    - hace 2 mess

Sígueme en Twitter Sígueme