Alexander Foken: Suche sowas wie navigator.framesEnabled

Beitrag lesen

Moin Moin !

Ich sehe wohl den Wald vor lauter Bäumen nicht. Eigentlich habe ich ja nur eine ganz kurze Frage, aber ihr müßt halt auch die vielen "Bäume" sehen, um mir den Wald zu zeigen. ;-)

Ich versuche gerade, meine Homepage auf valides HTML 4.01 zu bringen. Schwierigkeit dabei: Frames und eine Javascript-basierte Navigation, und keinerlei Möglichkeit, irgendetwas auf dem Server zu machen (keine CGIs, kein SSI, kein PHP, kein Perl, keine ASP). Das meiste funktioniert mit vorberechneten HTML-Seiten und Client-seitigem Javascript sehr gut. Auch ohne Javascript ist die Seite zu benutzen, ohne Frames und ohne Javascript funktioniert auch alles.

Probleme habe ich nur mit dem Fall, daß ein Browser zwar Javascript erlaubt, aber keine Frames (exotisch, aber mit wenigen Mausklicks durchaus möglich!). Einige Funktionen müssen in diesem Fall anders ablaufen.

Und genau an der Stelle klemmts: Ich kann mit ...

<script language="Javascript" type="text/javascript">
<!--
 var haveFrames=true;
//-->
</script>
<noframes>
<script language="Javascript" type="text/javascript">
<!--
 haveFrames=false;
//-->
</script>
</noframes>

... erkennen, ob der Browser Frames unterstützt, aber dann ist die Seite nicht mehr valid, weil das NOFRAMES-Tag im Header nichts zu suchen hat.

In der Frameset-Seite mault der Validator am <noframes>-Tag: >>This page is not Valid HTML 4.01 Frameset! Start tag for "FRAMESET" omitted, but its declaration does not permit this.<<

Und in den Inhaltsseiten ...

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="MSSmartTagsPreventParsing" content="TRUE">
<title>Meine Homepage</title>
<script language="Javascript" type="text/javascript">
<!--
 var haveFrames=true;
//-->
</script>
<noframes>
<script language="Javascript" type="text/javascript">
<!--
 haveFrames=false;
//-->
</script>
</noframes>
<link rel="stylesheet" type="text/css" href="../stylesheet.css">
<script language="Javascript" type="text/javascript">
<!--
 function NavOnLoad()
 {
  if (top==self) {
   window.location.href='../?internet/homepage.html';
  } else {
   top.UpdateNav('internet/homepage.html');
  }
 }
//-->
</script>
</head>

... ist der "LINK"-Tag nach "noframes" unbeliebt: >>This page is not Valid HTML 4.01 Transitional! Document type does not allow element "LINK" here.<<

So, und jetzt? Eigentlich hätte ich ja gerne ein navigator.framesEnabled-Attribut oder eine navigator.framesEnabled()-Methode analog zu navigator.cookieEnabled und navigator.javaEnabled(). Aber die gibt es ja wohl nicht.

Gibt es einen anderen Weg, zu überprüfen, ob der Browser Frames anzeigen kann?

Alexander

--
Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
Für eine bessere Übersichtsdarstellung des Forums: http://cforum.teamone.de/phpbt/bug.php?op=show&bugid=103&pos=2