Ich will auch gleich mal eine Frage bezüglich domready stellen , einen neuen Thread wollte ich nun nicht extra aufmachen da es ja das selbe Thema ist in gewisser Weise man verzeihe mir.
Also ich hab mir damals ein JS Import Script gebastelt welches auf die selbe Funktionsweise ging , wenn der Inhalt geladen ist führe es aus.
Nun aber der feine Unterschied , alle Browser ausser dem IE haben den Event DOMContentLoaded gut beim Safari bin ich mir nun nicht sicher.
Also hab ich mich nun mal umgeschaut und Dean Edwards selber nutzt conditional compilation , das bekommt nur der IE auf die Reihe und dort steht ein document.write('<script ...></script>'); Das Script selber bekommt den Event Handler onreadystatechange und das klappt im IE prima , der DOM ist dann tatsächlich geladen.
Soweit ich weiß schreibt document.write() etwas in das Document sagt ja schon der Name , aber sollte dann a) nicht der Inhalt vom alten Dokument überschrieben worden sein (passiert hierbei nur wenn der Inhalt bereits komplett geladen wurde) und b) woher weiß der IE das nun der DOM geladen wurde ?
Man könnte sich das ja so erklären das document.write() im dem Falle wo das Dokument noch nicht geladen wurde einfach den hinzugefügen Inhalt , im dem Falle das Scripttag, unten ran hängt , und wenn dieses Script dann da ist muss auch der DOM da sein.
document.getElementsByTagName("body")[0].innerHTML gibt darüber leider keine Auskunft :/
Hier mal der Code den ich nun genommen habe , ob man die conditional compilation da unbedingt benötigt mhm fragwürdig , kann man sicher auch über navigator.userAgent abfangen.
HTML:
<html>
<head>
<script type="text/javascript">
/*@cc_on
/*@if (@_win32) {
var dummy = "javascript:void(0)";
document.write("<script id=__ie_onload defer src='" + dummy + "'><\/script>");
document.getElementById("__ie_onload").onreadystatechange = function() {
if(this.readyState == "complete") {
alert(document.getElementById('check'));
}
};
}
@*/
/*@end @*/
</script>
<head>
<body>
<img src="http://www.codemasters.de/images/microsites/rfo/RFO_Art_planet.jpg"></img>
<div id="check">
körperklaus
</div>
</body>
</html>