2011-01-07 32 views
20

A continuación se muestra el código de mi YWA envoltorio¿Por qué Chrome arroja aquí "Error no detectado: NOT_FOUND_ERR: DOM Exception 8"?

var astr_ywascript = (document.createElement("script").type = "text/javascript").src = "http://d.yimg.com/mi/eu/ywa.js"; 
document.head.appendChild(astr_ywascript); // <- error on this line 

Está dirigido al cargar la página, por lo que no tiene sentido que JS no puede encontrar la etiqueta de la cabeza documento.

¿Alguna idea?

Gracias


Opera lanza este error en la misma línea. Uncaught exception: Error: WRONG_ARGUMENTS_ER Firebug dice: document.head is undefined [Break On This Error] document.head.appendChild(astr_ywascript);

Respuesta

16

En la línea

(document.createElement("script").type = "text/javascript").src 

que está configurando la propiedad src de una cadena. La asignación entre paréntesis devuelve el valor asignado. Haces el mismo error más adelante en la línea, en última instancia, la asignación de "http://d.yimg.com/mi/eu/ywa.js" a astr_ywascript

de Split hacia fuera sobre líneas separadas:

var el=document.createElement("script"); 
el.type="text/javascript" 
el.src=... 
document.head.appendChild(el); 

Raw Javascript rara vez se comporta de la manera fluida uno se acostumbra con jQuery.

También puede ser que desee obtener la cabeza de la siguiente manera:

document.getElementsByTagName("head")[0] 
8

Tengo este error con Backbone.js porque yo estaba haciendo:

$('#backbone').html(@view.render()) 

En lugar de

$('#backbone').html(@view.render().el) 

Como debería haber hecho. Todavía no sé realmente qué es este negocio "el", pero estoy seguro de que lo resolveré pronto.

+5

.el es la referencia de Backbone al elemento que se actualiza mediante render(). Probablemente tengas 'return this;' en tu método render(), que devuelve una referencia a la Vista Backbone, cuando suena como si estuvieras esperando 'return this.el' que te permitiría hacer' $ (...) .html (@ view.render()) ' –

+0

¡Este comentario acaba de resolver un dolor de cabeza MASIVO para mí! Me interesaría saber por qué la convención es hacer 'devolver esto' desde la función de renderizado en lugar de devolver this.el? – garmur

+1

Estaba obteniendo el mismo problema al pasar una matriz a la función .append(). En lugar de pasar texto html simple, pasé ** una matriz ** de texto html y eso hizo que el problema sucediera. – userfuser

0

Simplemente agregando esta respuesta para las personas que puedan acceder a esta página como lo hice mientras buscaba una respuesta a un error de “Uncaught Error: NOT_FOUND_ERR: DOM Exception 8.

Tuve este error en Chrome. En mi caso yo estaba usando .appendChild(ttt);

El problema era que ttt era un objeto de matriz en lugar del div que intentaba anexar.

Así que asegúrese de que lo que está agregando es en realidad un objeto DOM y no accidentalmente un tipo de objeto diferente.

Cuestiones relacionadas