molily: validierungsproblem javascript

Beitrag lesen

Hallo,

<script language="JavaScript">
<!--
Laden();
if (Infopalette == "aus") {
      var CSSFile="/modules/shop/scripts/infoaus.css.view";
      }
else {
var CSSFile="/modules/shop/scripts/infoan.css.view";
}
var Zeile="<LINK REL="STYLESHEET" HREF=""+CSSFile+"" TYPE="text/css">";
      document.write(Zeile);
//-->
</script>

Dieses Script kannst du auch auslagern.

<noscript>
<link rel="stylesheet" type="text/css" HREF="/modules/shop/scripts/infoan.css.view" TYPE="text/css">
<link rel="stylesheet" type="text/css" HREF="/modules/shop/scripts/inhalt.css.view" TYPE="text/css">
</noscript>

Wie gesagt ist noscript im Head nicht erlaubt, was ich für einen Fehler in der Spec halte. Das kannst du also einfach ignorieren, weil das sowieso jeder Browser unterstützt. Dann musst du allerdings mit invalidem Markup leben.

noscript ist sowieso nicht die feine Art, gängigerweise macht man das anders: Man bindet ein Stylesheet ohne Javascript einfach mit <link> ein. Mit JavaScript fügt man dann mit document.write ein weiteres <link> ein, das die Regeln dieses Stylesheets an bestimmten Stellen gezielt überschreibt.

Binde also standardmäßig inhalt.css.view und infoan.css.view ein. Mit JavaScript dann infoaus.css.view, das diese Stylesheets gezielt überschreibt. Dann kannst du auch valides Markup schreiben.

<link rel="stylesheet" type="text/css" href="/modules/shop/scripts/shop.css.view">
<link rel="stylesheet" type="text/css" href="/modules/shop/scripts/menue.css.view">
<link rel="stylesheet" type="text/css" href="/modules/shop/scripts/produkte.css.view">
<link rel="stylesheet" type="text/css" href="/modules/shop/scripts/links.css.view">

Solch ein Wust muss nicht im HTML-Code stehen. Beschäftige dich mit @import.

Mathias