2006-05-24

Hack ie firefox con las css

Muchas veces os habrá pasado que no se diseñáis una página y no se visualiza igual en internet explorer y en el firefox.

Hay un sencillo truquito o hack que mediante las css podemos emplear apra distinguir entre navegadores se trata de colocar un caracter antes de la definición del estilo.

Internet explorer se lo traga todo así que también leerá lo que siga, mientras que los demás navegadores, más standard lo veran como un error y pasarán a la siguiente línea.

Ejemplos:

margin-top:10px;
]margin-top:0px;

En este caso internet explorer establecería un margen superior de 0px y firefox y los demás navegadores de 10px.

Como caracter yo suelo utilizar "]", pero se pueden utilizar otros como "_" y más...

2006-05-01

Haga clic para activar y usar este control - activar contenido flash


Ya hace un tiempo que microsoft en una de sus últimas actualizaciones puso el famoso cartelito en los controles activex.. todo viene a raíz de una demanda judicial de una empresa que tiene patentado la inclusión de objetos ... así que con las etiquetas object, applet, o embed pasan estas cosas.. son 560 millones de dolares los que pide la empresa Eolas por utilizar su patente

Hay varias soluiones circulando por ahí: la solución de Adobe

Básicamente consiste en crear una función que escriba el código < object > y demás.


function ActivarFlash()
{
document.write('< OBJECT ...\n');
document.write('< PARAM NAME="movie" VALUE="---.swf">\n');
document.write('< PARAM NAME="quality" VALUE="high">\n');
document.write('< PARAM NAME="BGCOLOR" VALUE="#404040">\n');
document.write('< embed src="---.swf" ...>\n');
document.write('</embed>\n');

document.write('</object>\n');
}


esto se colocaría en un archivo externo. por ejemplo: activar.js

En la cabecera del archivo pondríamos:


< script src="js/activar.js" type="text/javascript"></script>

y luego < script type="text/javascript">ActivarFlash();</script> donde va colocado el flash.

Cómo os podéis imaginar la cosa se complica cuando tenéis varios flash en la página.

Encontré una solución hace unos días. se trata de utilizar el dom para ir activando uno a uno cada object que se encuentra.

Creas un js. Lo llamas activaractivex.js y pegas este código:


objects = document.getElementsByTagName("object");
for (var i = 0; i < objects.length; i++)
{
objects[i].outerHTML = objects[i].outerHTML;
}

Al final del todo o detrás del último object insertas la siguiente linea:


< script type="text/javascript" src="activaractivex.js"></script>


Esto viene muy bien si tienes plantillas dinámicas con poner estos códigos en la cabecera y en el pie de página te ahorras ir página a página...