Wenn Du mir das schon anbietest :)
1.) Wie zentriere ich beispielsweise div-objekte in allen Browsern mittels CSS? margin-left/right: auto; funktioniert leider im IE nicht ... :(
2.) Gibt es in html auch soetwas wie einen <foot> Tag als gegenstück zum <body>. Der Head hat ja die Eigenschaft, dass er vor allem anderen geladen hat. Gibt es dann auch einen Tag der nach allem anderen, also dem <body> lädt? Ich bin darauf im zusammenhang mit document.getElemenById("pnt").onclick = fct; gestoßen. Da bei eventhandlern als objetreferenz ja vorher die entsprechenden objekte geladen werden müssen. Oder fügt man das dann am geschicktesten einfach am ende das html-codes an?
Vielen, vielen Dank im Voraus.
1.) Klar funktioniert das ;) Du bist bestimmt im
Quirks-Modus . Also bitte immer den Doctype setzen :)
2.) Einen foot Tag gibt es nicht. Wenn dein Problem jedoch nur eins mit den Event-Handlern ist, kann ich dich beruhigen. Es gibt in Javascript Events, die ausgelöst werden, sobald das Dokument fertig geladen ist.
Die leichteste Methode dafür ist das vom window mitgelieferte Callback window.onload zu setzen.
Beispiele wie so etwas aussehen kann:
Code:
window.onload = init;
function init() {
document.getElementById("test");
}
als alternative auch mit einer anonymen Funktion möglich
Code:
window.onload = function() {
document.getElementById("test");
};
Denn obwohl das Ganze im head steht, wird die Funktion erst ausgeführt, wenn das Dkument geladen wurde.
Ein großer Nachteil solcher .onXXX Methoden liegt darin, dass man nur eine Callbackfunktion pro Element definieren kann.
Was heisst das? Wenn ich jetzt selber etwas schreibe, dass window.onload benutzt wie:
und jetzt hab ich da drunter noch eine js eingebunden, die folgenden Code hat
dann wird nur noch die Funktion doOther ausgeführt sobald das Dokument geladen wurde. Um das zu vermeiden bieten Browser Funktionen an um Event-Listener an Elemente anzuhängen.
Das Problem ist leider, dass die Funktionen im IE (Juhuuu -_-) anders als in den anderen Browsern gehandlet werden.
Die Funktion im IE lautet window.attachEvent und im Rest window.addEventListener
Beispiel:
Code:
if ( typeof window.addEventListener != "undefined" )
window.addEventListener( "click", func, false );
else if ( typeof window.attachEvent != "undefined" ) {
window.attachEvent( "onclick", func );
}
Welche Parameter was bedeuten kann man sich eventuell denken, bis auf das letzte false im addEventListener. Dieses Argument will wissen ob das Event "hochblubbern" soll oder nicht. Wenn du dazu weiteren lesestoff brauchst schau mal hier:
JavaScript: 9.6 Event-Bubbling
Hoffe konnte dir helfen ;)