Desgraciadamente teño que desenvolver solucións que funcionen no "incrible" navegador BastardIE (nótese o sarcasmo). Agora mesmo estou tentando facer unha animación en javascript e pensei que rematara ata que me din que non funciona.
En javascript é habitualfacer uso da sentenza setTimeout para chamar a unha función que cambie os estilos creando o efecto desexado. Eu a maiores tiña que pasar a dita función unha serie de parámetros da forma:
setTimeout(functionClousure, 500, param1, param2);
Resulta que explorer non colle os parámetros a maiores que se lle deben pasar como argumento da clausura (como fan os navegadores de verdade). Partindo da base que IE é un xoguete mal feito tiven que procurar en Google e atopar a solución:
// BastardIE feature
/*@cc_on
(function(f) {
window.setTimeout = f(window.setTimeout); // overwrites the global function!
window.setInterval = f(window.setInterval); // overwrites the global function!
})(function(f) {
return function(c, t) {
var a = [].slice.call(arguments, 2); // gathers the extra args
return f(function() {
c.apply(this, a); // passes them to your function
}, t);
};
});
@*/
Fonte: http://arguments.callee.info/2008/11/10/passing-arguments-to-settimeout-and-setinterval/
AVISO:
Última actualización | 2012-08-15 3:08 AM (Europe/Madrid) |
Data de creación | 2009-06-17 11:04 AM (Europe/Madrid) |
Fix window.setTimeout to work on IExplorer | |
javascript iebrowser |