<head>
<script type="text/javascript">
<!--
function ZweiFrames(URI1,F1,URI2,F2) {
Frame1=eval("parent."+F1);
Frame2=eval("parent."+F2);
eval ist evil!
Es ist überflüssig langsam und es erschwert die Fehlersuche.
Frame1.location.href = URI1;
Frame2.location.href = URI2;
Es reicht stattdessen zu schreiben:
parent[F1].location.href = URI1;
parent[F2].location.href = URI2;
}
//-->
</script>
</head>
<body>
<a href="javascript:ZweiFrames('URL1.html','FRAME1','URL2.html','FRAME2')">TEXT</a>
Dir ist klar das ohne JS nichts auf deiner Seite geht?
Man kann das ein bisschen verbessern:
<a href="URL1.html" target="FRAME1"
onclick="ZweiFrames(this.href,this.target,'URL2.html','FRAME2')">TEXT</a>
Das zweite Skript nutze ich zum wechseln von Grafiken in der Navigation:
In der Regel läßt sich sowas eleganter mit CSS lösen. ein paar Beispiele: http://css.maxdesign.com.au/index.htm
<HEAD>
<Script Language="JavaScript"><!--
language ist veraltet, es sollte wie oben heißen type="text/javascript"
function changeIt(ImageToChange, ImageToShow) {
if (document.images) { document[ImageToChange].src = ImageToShow; } }
um fehler zu vermeiden sollten die das vohandensein von Objekten überprüft werden:
function changeIt(ImageToChange, ImageToShow)
{
if (!document.images || !document.images[ImageToChange]) return alert('Fehler');
document[ImageToChange].src = ImageToShow;
}
function bar(message) {
if (document.images) { window.status = message; return true } }
Naja, sowas ist nicht gern gesehen, wird aber in aktuellen Browsern sowieso nicht mehr ausgeführt.
</HEAD>
<BODY>
<A href="test1.html" target="Hauptframe" onMouseOver="changeIt('img1','1.gif');
return bar(' ')" onMouseOut="changeIt('img1','11.gif');
return bar(' ')">
Der Teil nach onmouseover muss in einer Zeile stehen. innerhalb HTML attribute sind mehrzeilige Skript nicht möglich.
Struppi.