molily: Suche sowas wie navigator.framesEnabled

Beitrag lesen

Hallo Alexander,

Vorweg: Du hattest </archiv/2003/2/37752/#m207405> und vor allem auch das Folgeposting mit meine Mutmaßung über die Unmöglichkeit der einstufigen Überprüfung gelesen (im Frameset)? [Zitat vervollständigt]

Ja, sonst hätte ich das Problem ja gar nicht. ;-)

Bitte was? Im Gegenteil, sofern du meinem Rat, nämlich einer zweistufigen Abfrage, gefolgt wärst, würdest du das beschriebene Problem im Frameset nicht haben, soweit ich die Situation erfasst habe. Außerdem hatte ich bereits dargelegt, dass sich dieses einstufige Modell nicht valide realisieren lässt - wieso aber fragst du, wie es sich valide lösen lässt? Vielleicht ist mir ein Denkfehler unterlaufen, aber bitte erkläre es mir, wie du es valide hinbekommen willst, ich verstehe deine Strategie nicht. Angenommen du könntest mit JavaScript abfragen, ob Frames existieren, wie willst du alle Szenarien abdecken? Was willst du dynamisch einbinden, frameset- und/oder noframes-Elemente?

Hm, möglicherweise ahne ich, worauf du hinaus willst.  Ein weiterer Versuch, welcher per se nicht valide sein kann (naja, vielleicht pseudo-valide):

<-- kein Doctype, weil erst während der Laufzeit entschieden wird, ob es ein Frameset- oder Transitional-Dokument wird -->
<htmllang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>murks</title>
</head>

<noscript>alternativinhalt bei deaktiviertem javascript</noscript>

<script type="text/javascript">framesAktiviert=true;</script>

<noframes>
<script type="text/javascript">framesAktiviert=false;</script>
</noframes>

<script type="text/javascript">
if (framesAktiviert) {
 document.write('<frameset rows="*,*"><frame name="eins" src="murks.html"><frame name="zwei" src="murks.html"></frameset>');
} else {
 document.write('<body>alternativinhalt bei aktiviertem javascript</body>');
}
</script>
</html>

Szenarien:

  • Frames nein, JavaScript nein: Nur das erste noscript-Element wird interpretiert und der Alternativinhalt wird angezeigt
  • Frames ja, JavaScript nein: Nur das erste noscript-Element wird interpretiert und der Alternativinhalt wird angezeigt
  • Frames nein, JavaScript ja: noscript wird nicht angezeigt, script-Element eins schon und setzt framesAktiviert=true, das noframes-Element wird samt script-Element interpretiert und setzt framesAktiviert=false, das dritte script-Element gibt aufgrund von framesAktiviert==false den Alternativinhalt aus
  • Frames ja, JavaScript ja: das letzte Script gibt ein Frameset aus und der Browser interpretiert es (hoffentlich)

Das sieht recht vielversprechend aus, falls ich mich nicht irre. Natürlich gibt es keine Garantie, dass die Browser diesen murksigen Code schlucken (Opera macht es bei allen Szenarien, MSIE 6 anscheinend auch bei den möglichen Szenarien).
Meintest du so etwas? Wie gesagt, ich stehe grundsätzlich weiterhin zu dem empfohlenen Zwei-Stufen-Modell, welches unvergleichbar zuverlässiger ist.

Grüße,
Mathias