Hallo an alle,
ich habe eine Frage zum guten Code-Layout und wie man das vll. besser machen sollte, da ich gerade versuche mehr mit Javascript zu machen.
Zum Beispiel habe ich mir eine kleine "Klasse" geschrieben um Videos von Youtube auf der Seite einzubinden:
Frage 1: Sollte ich lieber eine Variable anlegen und die dann per appendChild anhängen oder ist es so wie ich es mache (immer durch den gesamten DOM-Baum) auch gut / besser (auch was die Performance angeht).
Frage 2: Ist es sinnvoll für eine so kleine Funktion die "Klassen" von Javascript zu benutzen? Ich hielt es für sinnvoll, um auch die Schließen-Funktion einfach wieder hernehmen zu können.
Frage 3: Warum meckert der Internet-Explorer beim ersten auftreten von lastChild rum, dass es null ist, ich habe es doch darüber definiert.
Frage 4: Kann mir vll. einer sagen, warum ich immer nur ein geöffnetes Video wieder schließen kann und danach kein "Node" mehr vorhanden ist? Immerhin entferne ich mit der close-Funktion meiner Meinung nach immer nur den einen Ast...
Und ich bin natürlich für jegliche Verbesserungsvorschläge für den Code dankbar, da ich ja etwas für meinen weiteren JS-Weg lernen möchte
Ich freue mir über jede Antwort.
mfg
SilentSight
ich habe eine Frage zum guten Code-Layout und wie man das vll. besser machen sollte, da ich gerade versuche mehr mit Javascript zu machen.
Zum Beispiel habe ich mir eine kleine "Klasse" geschrieben um Videos von Youtube auf der Seite einzubinden:
PHP-Code:
var Video = function(url)
{
this.container = document.createElement("div");
this.container.appendChild(document.createElement("div"));
this.container.lastChild.appendChild(document.createElement("a"));
this.container.lastChild.lastChild.href = "javascript:void(0);";
pThis = this;
this.container.lastChild.lastChild.onclick = function()
{
pThis.close();
};
this.container.lastChild.lastChild.appendChild(document.createTextNode("Schliessen"));
this.container.appendChild(document.createElement("object"));
this.container.style.position = "absolute";
this.container.style.top = "100px";
this.container.style.right = "50px";
this.container.lastChild.width = 640;
this.container.lastChild.height = 385;
this.container.lastChild.appendChild(document.createElement("param"));
this.container.lastChild.lastChild.name = "movie";
this.container.lastChild.lastChild.value = url;
this.container.lastChild.appendChild(document.createElement("param"));
this.container.lastChild.lastChild.name = "allowFullScreen";
this.container.lastChild.lastChild.value = true;
this.container.lastChild.appendChild(document.createElement("param"));
this.container.lastChild.lastChild.name = "allowscriptaccess";
this.container.lastChild.lastChild.value = "always";
this.container.lastChild.appendChild(document.createElement("embed"));
this.container.lastChild.lastChild.src = url;
this.container.lastChild.lastChild.type = "application/x-shockwave-flash";
this.container.lastChild.lastChild.allowscriptaccess = "always";
this.container.lastChild.lastChild.allowfullscreen = true;
this.container.lastChild.lastChild.width = 640;
this.container.lastChild.lastChild.height = 385;
document.getElementsByTagName("body")[0].appendChild(this.container);
}
Video.prototype.close = function()
{
document.getElementsByTagName("body")[0].removeChild(this.container);
}
Frage 2: Ist es sinnvoll für eine so kleine Funktion die "Klassen" von Javascript zu benutzen? Ich hielt es für sinnvoll, um auch die Schließen-Funktion einfach wieder hernehmen zu können.
Frage 3: Warum meckert der Internet-Explorer beim ersten auftreten von lastChild rum, dass es null ist, ich habe es doch darüber definiert.
Frage 4: Kann mir vll. einer sagen, warum ich immer nur ein geöffnetes Video wieder schließen kann und danach kein "Node" mehr vorhanden ist? Immerhin entferne ich mit der close-Funktion meiner Meinung nach immer nur den einen Ast...
Und ich bin natürlich für jegliche Verbesserungsvorschläge für den Code dankbar, da ich ja etwas für meinen weiteren JS-Weg lernen möchte

Ich freue mir über jede Antwort.
mfg
SilentSight
Kommentar