rssfeed

Firebug console wrapper függvény

2009. 11. 24., 16:57 |

Rajtam kívül biztos járt már más is úgy, hogy benne felejtett a javascript kódban pár console.log, vagy hasonló függvény hívást. Tegnap legalább fél óráig hajkurásztam egy nagyon érdekes bugot: egy js kód nálam tökéletesen ment, de az enyémen kívül más böngészőben nem nagyon. Végül rájöttem, hogy a kódban bent maradt egy console.log() hívás, ami természetesen minden böngészőben elhasalt, amiben nincs telepítve a Firebug. A jelenség elkerülésének igénye hívta életre ezt a log függvényt (ez de szép :D), ami annyit csinál, hogy ha létezik a console objektum akkor a log első paramétereként megadott függvényt meghívja és a többi paramétert átadja neki. Ennyi az egész :)

var log = function()
{
	if(typeof(console)=='object')
	{
		var a = Array.prototype.slice.call(arguments);
		console[a.shift()](a);
	}
}
// pár példa hívás
log('log',{id:1},1,'232342');
log('debug',{id:1},1,'232342');
log('info',{id:1},1,'232342');

ps: meg lehet ezt még cifrázni pár dologgal, pl. egy globális változóval (teszem azt debug), aminek hatására, ha van Firebug, ha nincs, nem történik hívás. Így az éles oldalon se szemeteli tele az oldal a Firebug console-t, ha valakinek telepítve van :)


 
 
 

Leave a Reply