Un pequeño script rápido y muy sencillo que he elaborado para jQuery, que hace lo que el título de esta entrada. Hasta ahora estaba usando uno de los textOverflow que andan por ahí, pero me estaban dando algún problema.

$.fn.ellipsis = function() { return this.each( function() {
 
	var tar = $(this),
		ow, ls, tg, 
		tw=tar.css({"display":"block","white-space":"nowrap"}).width(), 
		ot=tar.html(), pt=ot,
		alt=tar.text(),
		ok=false, 
		ct=false,
		el=' …';
 
	tar.css({"position":"absolute"});
 
	while (!ok) {
		ow = tar.css({"width":"auto"}).width();
 
		if (ow > tw) {
			ls = pt.lastIndexOf(" ");
			tg = (new RegExp( "<[^>]*$", "g" )).test( pt.substr(0, ls) );
			if (ls > 0) { 
				pt = pt.substr(0, ls);
				tar.html( pt + el );
				ct=true;
			} else {
				tar.html( el ).attr("title", alt);
				ok=true && !tg;
			}
		} else { 
			if (ct) {
				tar.attr("title", alt);
				tar.css({"display":"block","width":tw+"px"});
			}
			ok = true;
		}
	}
	tar.css({"position":""});
 
}); }

Y para usarlo.

$(".textodeunalinea").ellipsis()

Actualización 27-10-2010: Se han hecho algunas correcciones. Y un detalle; se porta un poquito mal cuando hay Html en el texto. Pendiente de corregir.

Os dejo una pequeña y sencilla función para realizar esta tarea en Javascript. Evidentemente, está sujeto a las mejoras que creáis convenientes.

function XMLString( object, name, recursiveCall ) {
	var xml = "", i;
	var isArray = typeof(object) === 'object' && typeof(object.length) === 'number' &&  !(object.propertyIsEnumerable('length')) && typeof(object.splice === 'function');
 
	if (!recursiveCall)	{
		xml += "<?xml version=\"1.0\" ?>";;
		xml += "<"+name+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">";
	} else if (!isArray) {
		xml += "<"+name+">";
	}
 
	if (typeof(object) === "undefined" || object == null) return ""; //Nada
	else if (typeof(object) === "object") for (i in object) xml += XMLString( object[i], isArray?name:i, true); // Un objeto o array
	else xml += object; // Un texto
 
	if (!isArray || !recursiveCall) xml += "</"+name+">";
 
	return xml;
}

Y un ejemplo de uso sería:

var objeto = {
	campo1 : "valor1",
	campo2 : "valor2",
	campo3 : "valor3"
}
 
alert( XMLString( objeto, "XML" ) );

Donde el primer parámetro es el objeto a convertir, y el segundo es el nombre del elemento raíz. Con el ejemplo anterior obtendríamos como salida la siguiente cadena:

<?xml version="1.0" ?>
<XML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <campo1>valor1</campo1>
  <campo2>valor2</campo2>
  <campo3>valor3</campo3>
</XML>

Con 4 cambios es posible convertirlo en código AS2 o AS3. Aunque en estos casos creo que hay métodos mejores y nativos para hacer esta función.

Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de Internet manifestamos nuestra firme oposición al proyecto, y declaramos que:
Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.
La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.
La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.
La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.
Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.
Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.
Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.
Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.
Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.
En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de Internet manifestamos nuestra firme oposición al proyecto, y declaramos que:

  1. Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.
  2. La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.
  3. La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.
  4. La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.
  5. Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.
  6. Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.
  7. Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.
  8. Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.
  9. Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.
  10. En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

Invitaciones Google Wave

Noviembre 30th, 2009

Gracias a Ruben Colomer (http://www.online.com.es) he tenido oportunidad de probar este nuevo servicio de Google. Por ahora no hay mucho que ver; es una idea de cómo podría funcionar, pero está interesante.

El caso es que me acaban de llegar 8 invitaciones. ¿Quieres una? Pídelo comentando esta entrada...

De todos es conocido el problema de emplear la pseudo-clase :hover con Internet Explorer 6. Este funciona solamente con los hipervínculos (<a></a>) dejando fuera al resto de elementos.

Con la ayuda de jQuery, podemos solventar de manera fácil este problema añadiendo unas lineas al inicio del script, y teniendo en cuenta una regla en el CSS que contenga los estilos.

Por ejemplo, teniendo el siguiente CSS:

#menu li:hover {
text-decoration:underline:
}

Habría que modificarlo tal que:

#menu li:hover, #menu li.hover {
text-decoration:underline;
}

De manera que podamos acceder a dicho estilo mediante una clase.

Y ahora, solo quedaría realizar un script que añada la clase o la elimine según el evento llamado. Para ello emplearemos la función hover(mouseOver, mouseOut) que nos facilita jQuery.

$(document).ready( function() {
if ($.browser.msie) $("*").hover( function() { $(this).addClass("hover"); }, function() { $(this).removeClass("hover"); } );
});

Y a funcionar :D

A veces interesa que los buscadores no indexen determinada parte de una página o incluso determinada palabra, ya sea porque repetimos contenidos (puede penalizarnos), o porque no queremos que nos relacionen con un determinado término.

Cada buscador implementa un método para realizar esta función. Los siguientes enlaces recopilan información de cómo usarlo con Google o Yahoo!, entre otros.

Recopilación de los métodos de indexado selectivo de varios buscadores

http://wunderwood.org/most_casual_observer/2007/05/selective_page_indexing_direct.html

Propuesta de indexado selectivo por Microformats (usado por Yahoo!)

http://microformats.org/wiki/robots-exclusion

Ampliación de los métodos usados por Google
http://code.google.com/intl/es-ES/apis/searchappliance/documentation/46/admin_crawl/Preparing.html#pagepart