Hallo Dmitri, hallo Norbert
Ob das sinnvoll ist, wage ich aber zu bezwifeln, anstatt defer zu verwenden kann man das document.write() doch auch gleich raus lassen, bzw. wozu sollte man es denn einbaun, wenn man es später sowieso mit defer unterbinden will.
Naja, aber irgendein schlauer Mensch wird sich schon was dabei gedacht haben - was auch immer das gewesen sein mag.
ein "gefährliches" Attribut :-), denn nirgendwo steht beim W3C geschrieben, was im Anschluß passieren soll.
Sinn des Attributes ist es, zuerst die Seite zu laden und dann die Scripte auszuführen. Es soll einen Geschwindigkeitszuwachs bringen.
Im IE wird das document.write() nicht unterbunden. Defer bewirkt hier, dass die Ausführung des Scriptes erst nach dem Laden der Seite erfolgt.
Teste mal dieses kleine Beispiel:
<html>
<head>
<title>Attribut defer</title>
</head>
<body>
<script defer="true" type="text/javascript">
alert(1)
</script>
<script defer="true" type="text/javascript">
document.write(2)
</script>
<script type="text/javascript">
alert(3)
</script>
</body>
</html>
Das demonstriert ziemlich gut, wie mit dem Attribut im IE umgegangen wird. Sollten mal andere Browser als der IE das Attribut interpretieren, wird wohl jeder etwas anderes damit machen, denn das W3C schweigt sich darüber aus, was nach dem Laden der Seite passieren soll.
Viele Grüße
Antje