Hola:
Bueno, recuerdo que en mozilla y creo que también en Opera se pueden definir atributos a tags determinados con prototype, por ejemplo:
HTMLParagraphElement.prototype.toString = function() {return "párrafo";}
y si no se redefine su método toString(), devuelven [object HTMLParagraphElement], pero explorer a todos los considera [Object], así que supongo que hay que discriminar en la misma función.
Voy a intentarlo y te cuento.
Saludos