HTML 5 - body/head-Tag weg lassen

Wie bereits oben geschrieben, ist das bereits in HTML4 schon immer erlaubt gewesen (http://meiert.com/en/blog/20080601/optional-tags-in-html-4/). Ich habe doch direkt zur Stelle verlinkt, da steht

HTML:
<!-- Not recommended -->
<!DOCTYPE html>
<html>
  <head>
    <title>Spending money, spending bytes</title>
  </head>
  <body>
    <p>Sic.</p>
  </body>
</html>

<!-- Recommended -->
<!DOCTYPE html>
<title>Saving money, saving bytes</title>
<p>Qed.

Und einen Beweis dafür gibt es nicht, weil es in der Spezifikation einfach festgelegt wurde. Diese ist ebenfalls auf der Google Seite verlinkt http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#syntax-tag-omission

A body element's end tag may be omitted if the body element is not immediately followed by a comment.
 
gut, wenn jetzt geklärt ist, dass es nach googlerichtlinien wünschenswert ist die besagten tags wegzulassen, hier mein quellcode(auf ein minimum reduziert):

HTML:
<!DOCTYPE HTML>
<meta charset="utf-8">
<title>title</title>
<!--[if lt IE 9]>
<script type="text/javascript" src="js/ie_html5.js"></script>
<![endif]-->
<div class="wrapper">
  <header> header </header>
  <section>
    <div class="mainContainer">
      <nav>
        <ul>
          <li> link
        </ul>
      </nav>
      <div id="contentContainer"> content </div>
    </div>
  </section>
</div>
<footer>
  <div id="footerMenu">
    <ul>
      <li>link
    </ul>
  </div>
</footer>
Der Fehler tauch bei allen unter IE9 auf. Meine Tests haben ergeben, dass die eingebundene ie_html5.js das Problem verursacht. Woran kann das liegen?

Hier der code der .js:
Code:
(function(){
var html5elmeents = "address|article|aside|audio|canvas|command|datalist|details|dialog|figure|figcaption|footer|header|hgroup|keygen|mark|meter|menu|nav|progress|ruby|section|time|video".split('|');
for(var i = 0; i < html5elmeents.length; i++){
  	document.createElement(html5elmeents[i]);
  	}
}
)();
 
Fehlerkonsole sagt "syntax error". Da ist eine schließende geschweifte Klammer, die da nicht hin gehört.
 
kann keinen fehler erkennen, es werden 2 klammern geöffnet und 2 geschlossen
ein syntax error wird bei mir ebenfalls nicht angezeigt

edit:
selbst wenn ich den script abänder funktioniert die seite nichtmehr
Code:
document.createElement("article");
document.createElement("footer");
document.createElement("header");
document.createElement("hgroup");
document.createElement("nav");
document.createElement("section");

jedes element was hier erstellt wird, wird im IE(unter 9)ausgeblendet(aber nur wenn der bodytag fehlt) - wieso?
 
Zuletzt bearbeitet:
Sorry, mein Fehler.


Enthält deine CSS Datei für alle diese Elemente auch folgende Regel?

CSS:
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section {
    display: block;
}

Mehr: https://github.com/h5bp/html5-boilerplate

Denn die Elemente sind dem alten IE unbekannt und deshalb ist display default auf "none".
 
ja habe die angaben bereits in meiner css drin
edit:
wenn ich die page im IE untersuche, sehe ich dass er head und bodytag automatisch setzt(glaub soll auch so sein) - allerdings befinden sich alle meine html5 elemente im head tag(weswegen diese nicht angezeigt werden)
 
Zuletzt bearbeitet:
Wenn du das Skript ans Ende des Dokumentes setzt, dann funktioniert alles. JavaScript sollte sowieso ans Ende des Dokumentes.
 
perfekt, danke das wars!

habe gedacht, dass dieser script noch bevor die entsprechenden elemente benutzt werden eingebunden werden muss - dem ist wohl nicht so^^ danke nochmal funktioniert jetzt prima
 

Neue Beiträge

Zurück