suit: HTML Datei

Beitrag lesen

Du kannst auch ganze HTML seiten einbetten, und dann mit "document.write" ausgeben lassen.

anmerkung:

document.write ist eine "furchtbar blöde idee" - und das in mehrerlei hinsicht

einerseits greift document.write direkt in den render- und reflow-prozess des browsers ein, also an der stelle, wo der html-code bereits generiert wird, aber unter umständen noch nicht vollständig geladen wurde - dh es wird ständig zwischen layout-engine und javascript-engine gewechselt bzw es wird gleichzeitg gearbeitet - einen langsamen rechner oder browser bringt das zum weinen

andererseits funktioniert document.write in xml absolut nicht, da sich ein xml-parser auf die wohlgeformtheit des codes verlässt, sich aber mittels document.write theoretisch nicht wohlgeformter code produzieren lässt, der aber eigentlich valides xml-darstellt

  
<div>  
  <script type="text/javascript"><[!CDATA[document.write('<strong>');]]></script>  
  blah  
  <script type="text/javascript"><[!CDATA[document.write('</strong>');]]></script>  
</div>  

obriges beispiel ist wohlgeformt, wenn aber zuerst eine javascript-engine drüberläuft oder dies sogar zur laufzeit passiert, wäre das strong-element geöffnet aber nicht korrekt verschachtelt, da das end-tag erst im zweiten document-write folgt

das daraus resultierende html wäre (betrachtet man den gernerieten quellext) dann zwar theoretisch valide, den xml-parser macht das aber traurig

nachdem also bei einem xml-fähigen browser sofort das xml-file gerendert wird, gib es den oben beschriebenen wechsel zwischen dem tag-soup-parser der layout-engine und der javascript-engine garnicht - ergo document.write kann nicht ausgeführt werden, da es zu zeitpunkt, wo die javascript-engine erstmals ran darf schon zu spät ist

aus diesen gründen eignet es sich, auch wenn man nichts als xml ausliefert, sich dennoch schon anzugewöhnen, auf document.write völlig zu verzichten und entsprechende alternativen (zb innerHTML) zu verwenden, damit mans in zukunft leichet hat und leute mit langsamen browsern nicht beleidigt