El document.createElement()
nativo es tonto-estúpido (solo requiere un nombre de etiqueta y ningún atributo). ¿Cómo es que no puedo anularlo? ¿Cómo es que esto no funciona?Anulando la función nativa?
var originalFunction = document.createElement;
document.createElement = function(tag, attributes) {
var element = originalFunction(tag);
if (attributes) {
for (var attribute in attributes) {
element.setAttribute(attribute, attributes[attribute]);
}
}
return element;
};
El problema es que los navegadores explotan cuando intentas reemplazar una función nativa. Como document
no es una primitiva de JavaScript, tampoco puede crear un prototipo para ella. WTF.
Creo 'document.createElement (..)' no piensa mucho de ustedes tampoco. –
¿Por qué no solo crea y usa su propia función en lugar de anular las funciones nativas? –
@KennethJ Porque algunas personas aún intentan crear una biblioteca de estandarización o intentan ejecutar el código de validación cuando se crea un elemento en el DOM, sin tener que crear espacios de nombres y otras cosas. – helly0d