Benötigen Sie ein Feedback zu meinem Javascript-Code und der Idee zur App-Implementierung

487
dole

Ich bin neu in Javascript und ich bin mir nicht sicher, ob das ein guter Ansatz ist. Der Code funktioniert und macht das, was ich brauche, aber ich bin mir sicher, dass ich die Dinge nicht richtig gemacht habe.

Können Sie mir Feedback zur Implementierungsidee und zum Code geben?

Nehmen wir also an, dass ich in index.html den folgenden Code im Hauptteil habe.

<script type="text/javascript" src="js/main.js" language="javascript"></script>

Der Inhalt der Datei main.js lautet wie folgt:

document.write('<script language="javascript" type="text/javascript" >');

function loaded() {
}

loaded(); 
document.write('</script>');

Ich weiß, dass das Verwenden von document.write überhaupt keine kluge Sache ist. Ich bin sicher, dass andere Dinge fehlerhaft sind, aber ich bin Neuling und suche nach Feedback.

Antworten
5
Zu welchem ​​Zweck verwenden Sie document.write? Ich bezweifle, dass Sie auf diese Weise ein internes Skript einfügen müssen. Eric Bréchemier vor 9 Jahren 0
Wenn der ursprüngliche Fragencode gelöscht wird, sind die meisten Antworten unverständlich oder verwirrend (nicht die Antworten sind fehlerhaft). Können Sie den ursprünglichen Code wiederherstellen und anschließend einen UPDATE: -Abschnitt mit den von Ihnen angenommenen Änderungen vornehmen? Michael Paulukonis vor 6 Jahren 0

2 Antworten auf die Frage

3
Raynos

Auf einen Blick gibt es einige Punkte, an denen Sie einfache Fehler machen.

// Document.write is bad
document.write('<script language="javascript" type="text/javascript" >');

// use css definitions instead
counter_div.setAttribute('style', 'width: 310px; height: 50px; font-family:lucida,tahoma,helvetica,arial,sans-serif; display: block; overflow:hide;');

// dont set inner html. This is bad. use DOM manipulation instead
title_span.innerHTML = meter_title;

// uses eval here. pass a function rather then a string
setInterval("increment()", interval);

// forgetting to declare addCommas with `var`. This is implecetly global.
addCommas = function(nStr) {

Ich werde einen Blick darauf werfen, wie ich das neu gestalten kann.

Warum müssen Sie das div nach dem Script-Tag anhängen? Das Positionieren des Skript-Tags im DOM ist konstruktionsbedingt schlecht.

Es wäre besser, einen zu erstellen <div>, der mit dem Timer / Zähler gefüllt wird.

Teilweise hier überarbeitet . Dies beinhaltet das Beheben der oben genannten Probleme und die Dom-Manipulation etwas angenehmer.

Ich bin mir nicht sicher, wie ich den Timer-Code umgestalten soll.

1
Stuart

Ich denke, Sie wollen das document.writes herausnehmen und hinzufügen

<body onload="loaded()">

(oder welche Funktion Sie zuerst ausführen müssen) zu index.html