Oliver Giebel: Aus Visual C++ 5.0 *.html Seiten in Frames darstellen

Hallo,

Ich habe eine Hilfe in HTML realisiert. Die *.index.html besteht aus zwei Frames.
Links zum Navigieren, rechts wird das Thema angezeigt.
Nun möchte aus einem Programm entsprechende Themen quasi als "kontextsensitive"
Hilfe anzeigen lassen. (Unter Visual C++ 5.0 mit SelfExecute())

Das Problem: Wie kann ich meiner index.html mitteilen, was sie in welchem Frame anzeigen
soll, praktisch als Parameter?
Ansonsten bekomme ich die entsprechende Seite zwar angezeigt, aber eben ohne Frames.

Grüße,

Olli

  1. Hallo Oliver,

    Das Problem: Wie kann ich meiner index.html mitteilen, was sie in welchem Frame anzeigen
    soll, praktisch als Parameter?

    Indem du das Frameset nicht direkt in HTML notierst, sondern mit Hilfe von JavaScript und document.write-Befehlen - Schema:

    <script language="JavaScript">
    zeige = location.hash;
    document.writeln("<frameset cols="100,*">");
    document.writeln("<frame src="navigation.htm">");
    document.writeln("<frame src=" + zeige + ".htm">");
    document.writeln("</frameset>");
    </script>

    Und aufrufen tust du die index.html dann aus dem Programm (Beispiel):
    index.html#topic123

    Die Frameset-Datei baut ja sowieso gleich die Frames auf und hat (hoffentlich <g>) kein Interesse, den uebergebenen Anker #topic123 zu suchen. Stattdessen wird dieser in einer Variablen namens zeige gespeichert. Deren Wert wird zum Aufruf der Datei im Datenframe genutzt. Im Beispiel wird versucht, eine Datei namens topic123.htm ins Fenster des Datenframes zu laden.

    Wenn die Hilfe nur mit Netscape angezeigt werden soll, kannst du auch ? statt # in der Uebergabe benutzen und dann mit location.search statt location.hast den Wert auslesen. Ist eigentlich sauberer, aber funktioniert lokal nur mit Netscape, nicht mit MSIE.

    Ausprobiert hab ich das jetzt alles nicht, kann also sein, dass Bugs drin sind.

    viele Gruesse
      Stefan Muenz

    1. Hi Stefan,

      Wenn die Hilfe nur mit Netscape angezeigt werden soll, kannst du auch ? statt # in der Uebergabe benutzen und dann mit location.search statt location.hast den Wert auslesen. Ist eigentlich sauberer, aber funktioniert lokal nur mit Netscape, nicht mit MSIE.

      Wieso? Der IE kennt auch das Objeckt location.search.

      Gruß,
      Martin

  2. Nun möchte aus einem Programm entsprechende Themen quasi als "kontextsensitive"
    Hilfe anzeigen lassen. (Unter Visual C++ 5.0 mit SelfExecute())
    Das Problem: Wie kann ich meiner index.html mitteilen, was sie in welchem Frame anzeigen
    soll, praktisch als Parameter?

    Ich weiß nicht, wie Du die Ausführung einer Anwendung (?) aus einer HTML-Seite heraus triggern kannst. (Oder ich habe nicht verstanden, was Du genau erreichen willst.)
    Ich habe aber etwas Ähnliches - unter Verwendung eines Webservers - als CGI-Anwendung realisiert (eine Benutzeroberfläche, die als Parameter die Sprache der auszugebenden Meldungen benötigte). Da meine Teil-Frames als CGI-Ausgaben generiert wurden, habe ich dann auch gleich das Frameset als Ergebnis eines CGI-Aufrufs erzeugt, so daß sein Inhalt - also auch die URLs darzustellender Dokumente in den Frames - abhängig von einem übergebenen CGI-Parameter generiert wurde.