Warum erhalte ich dieses jsfiddle Fehler, zu dokumentieren.schreiben kann eine form von eval
Teste ich einen code habe ich gefunden, während ein Buch zu Lesen. Ich bekomme diese Fehlermeldung beim testen, die es in JS fiddle, document.write
kann eine form von eval.
var text = '<html><body bgcolor=linen><p>' +
'This is <b>bold<\/b>!<\/p><\/body><\/html>';
var tags = /[^<>]+|<(\/?)([A-Za-z]+)([^<>]*)>/g;
var a, i;
while ((a = tags.exec(text))) {
for (i = 0; i < a.length; i += 1) {
document.writeln(('//[' + i + '] ' + a[i]).entityify());
}
document.writeln();
}
Bin ich immer der der oben JSfiddle Warnung auf beiden Linien mit document.writeln()
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beachten Sie, dass dies nur eine Warnung - aber gut, sollte das respektiert werden. Es ist eigentlich erzeugt durch einen checker genannt JSLint - und eine gute Lektüre für die Begründung dieser Warnung steht an http://www.jameswiseman.com/blog/2011/03/31/jslint-messages-document-write-can-be-a-form-of-eval/.
Grundsätzlich die Grundlage dafür ist, dass "eval ist böse" - und das
document.write
können verwendet werden, um Evaluationen durchzuführen.Neben dieser - und nicht in der oben aufgeführten, zu vermeiden
document.write
Wann immer möglich, außer vielleicht einfach testen. Er schreibt, um den DOM, nachdem Sie es als "vollständige", und änderungen an dieser Stelle sollte nur gemacht werden mit Hilfe der unterstützten DOM-Methoden. Weitere details diesbezüglich bedeckt bei Warum ist das Dokument.schreiben als eine "schlechte Praxis"? - wo es erwähnt wird, dass es "Weit besser, um die sichere Nutzung und DOM freundliche DOM-manipulation-Methoden" (document.createElement
,element.appendChild
usw.). Ein gutes konkretes Beispiel ist verfügbar unter https://developer.mozilla.org/en-US/docs/Web/API/Document_object_model/Using_the_W3C_DOM_Level_1_Core.document.write
. Ich bin neu in js, traf ich dieses problem auch. Ich habe immer noch keine Antwort, wie Sie zu verbessern.document.getElementById
nennt die DOM-Methode, die tatsächlich eingeführt wurde, die von meinem Prof. in der Klasse. 囧