2011-01-07 8 views
20

Unten ist der Code für meine YWA WrapperWarum wirft Chrome hier "Uncaught Error: 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 

Es auf Seite Last laufen gelassen, so macht es keinen Sinn, dass JS das Dokument nicht Kopf-Tag finden.

Irgendwelche Ideen?

Dank


Opera wirft diesen Fehler auf der gleichen Linie. Uncaught exception: Error: WRONG_ARGUMENTS_ER Firebug sagt: document.head is undefined [Break On This Error] document.head.appendChild(astr_ywascript);

Antwort

16

In der Zeile

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

Sie die src-Eigenschaft eines Strings setzen. Die Zuweisung in Klammern gibt den zugewiesenen Wert zurück. Sie machen den gleichen Fehler später in der Linie, schließlich "http://d.yimg.com/mi/eu/ywa.js" zu astr_ywascript

Split es Zuweisung aus auf separaten Zeilen:

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

Raw Javascript verhält sich selten in der Flüssigkeit Art und Weise man mit jQuery verwendet wird.

Sie könnten auch den Kopf zu bekommen, wie folgt:

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

ich mit Backbone.js diesen Fehler habe, weil ich zu tun war:

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

Statt

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

Wie ich hätte tun sollen. Ich weiß immer noch nicht, was dieses Geschäft ist, aber ich bin mir sicher, dass ich es bald herausfinden werde.

+5

.el ist Backbones Verweis auf das Element, das von render() aktualisiert wird. Sie haben wahrscheinlich 'return this;' in Ihrer render() -Methode, die einen Verweis auf die Backbone-Ansicht selbst zurückgibt, wenn es sich anhört, als würden Sie 'return this.el' erwarten, was Sie' $ (...) .html (@ view.render()) ' –

+0

Dieser Kommentar löste gerade einen MASSIVEN Kopfschmerz für mich! Es würde mich interessieren zu wissen, warum die Konvention das von der Renderfunktion "zurückgeben" soll, anstatt dieses zurückzugeben.el? – garmur

+1

Ich bekam das gleiche Problem, wenn ich ein Array an die .append() - Funktion übergab. Anstatt einfachen HTML-Text zu übergeben, habe ich ein Array von HTML-Text übergeben und das Problem passiert. – userfuser

0

anhängt Genau diese Antwort für die Menschen, die diese Seite schlagen könnte, wie ich während auf eine Antwort auf eine “Uncaught Error: NOT_FOUND_ERR: DOM Exception 8 Fehler gesucht haben.

Ich hatte diesen Fehler in Chrome. In meinem Fall war ich

Das Problem war, dass ttt war ein Array-Objekt anstelle der div, die ich anhängen wollte. eigentlich ein DOM-Objekt ist und nicht zufällig ein anderer Objekttyp

So stellen Sie sicher, was Sie angehängt wird.

Verwandte Themen