Visual Basic - Technik, FAQ, Tricks, Beispiele

Home / ASP / Tipps / Frames

Frames besser nutzen

Einleitung

Frames kann man lieben oder hassen (s.a. Frames - Schöne heile Welt?) - für einige (wenige!) Anwendungen können sie ganz hilfreich sein.

Ein typisches Problem bei der Verwendung von Frames zur Navigation ist folgendes: Bei Auswahl eines Links in der Menü-Spalte soll nicht nur der Inhalt des Inhalts-Bereichs geändert werden, sondern auch die Menü-Spalte selbst (z.B. zur Anzeige eines Untermenüs).

Oft wird hierfür JavaScript verwendet, mit den bekannten gravierenden Nachteilen (s.a. www.schwider.de/javascr.htm). Mit dem unten gezeigten Schema kann man das gleiche Verhalten aber auch komfortabel mit ASP realisieren:

Beispiel

Zur Umsetzung des Prinzips wird eine ASP-Seite frames.asp nach folgendem Schema benötigt (man beachte, wie die ge-Frame-ten Seiten variabel gemacht worden sind, unter Nutzung von Default-Seiten):

<%@ EnableSessionState = False%>
<%
Option Explicit
Response.Expires = -1

'(linke) Menü-Seite bestimmen:
Dim MenuURL
MenuURL = Request.QueryString("menu")
If MenuURL = "" Then MenuURL = "menu.htm"

'(rechte) Inhalts-Seite bestimmen:
Dim MainURL
MainURL = Request.QueryString("main")
If MainURL = "" Then MainURL = "home.htm"
%>

<html>
<head>
<title>Blabla Homepage</title>
</head>
<frameset cols="200,*">
 <frame name="menu" src="<%=MenuURL%>">
 <frame name="main" src="<%=MainURL%>">
</frameset>
</html>

Die Links in den Menü-Seiten müssen ähnlich wie in menu.htm aufgebaut sein (zumindest Nennung der rechts anzuzeigenden Seite):

<html>
<body>

<ul>
 <li><a href="frames.asp" target="_parent">Home</a></li>
 <li><a href="frames.asp?menu=tips.htm&main=tips.asp" target="_parent">Tipps + Tricks</a></li>
 <li><a href="frames.asp?main=impr.htm" target="_parent">Impressum</a></li>
</ul>

</body>
</html>

Man beachte, wie die Default-Seiten benutzt werden, um die URLs kurz zu halten: "Home" stellt einfach die Default-Seiten dar, "Tipps + Tricks" modifiziert sowohl die Menü- als auch die Inhalts-Seite (dynamisch, da offensichtlich eine ASP-Anwendung), und "Impressum" benutzt zwar das Default-Menü, aber einen individuellen (statischen) Inhalt.

© Jost Schwider, 30.08.2001-25.11.2003 - http://vb-tec.de/aspframe.htm