VB-Tec.de Visual Basic - Technik, FAQ, Tricks, BeispieleFrames besser nutzen |
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:
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