trinex: Mehrere Frames via Java ändern

Guten Tag

Ich habe folgendes problem:

Ich habe eine Seite mit mehreren Frames. Im oberen Frame befindet sich das Hauptmenü der einzelnen Bereiche. Im linken Frame soll das zugehörige Menü erscheinen. Nun soll, wenn der User im Seitenmenü auf "Geschichte" klickt, sich erstens die Geschichtsseite im Mainframe öffnen und zweitens das wort "Geschichte" im Menü Gelb gefärbt werden (ich ersetze einfach den ganzen Menüframe durch eine neue Menüseite).

Momentan habe ich das ganze so gelöst:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<title>Unbenanntes Dokument</title>  
  
<script type="text/javascript">  
function FrameAendern (URI, Framename) {  
  parent[left_menue].location.href = URI;  
}  
  
function ZweiFramesBack (Framename1, Framename2) {  
  Frame2 = parent[Framename2];  
  parent[Framename1].history.back();  
  if (!window.opera)  
    window.setTimeout("Frame2.history.back()", 100);  
}  
  
function ZweiFramesForward (Framename1, Framename2) {  
  Frame2 = parent[Framename2];  
  parent[Framename1].history.forward();  
  if (!window.opera)  
    window.setTimeout("Frame2.history.forward()", 100);  
}  
</script>  
  
  
<style type="text/css">  
  
#navcontainer ul  
{  
list-style-type: none;  
text-align: left;  
}  
  
#navcontainer ul li a  
{  
background: transparent url(images/list-off.gif) left center no-repeat;  
padding-left: 15px;  
text-align: left;  
font: normal 12px "Lucida Grande", "Lucida Sans Unicode", verdana, lucida, sans-serif;  
text-decoration: none;  
color: #999;  
}  
  
#navcontainer ul li a:hover  
{  
 background: transparent url(images/list-on.gif) left center no-repeat;  
 color: #E0A83B;  
}  
  
#navcontainer ul li a#current  
{  
 background: transparent url(images/list-active.gif) left center no-repeat;  
 color: #E0A83B;  
 font-weight: bold;  
}  
  
  
<!--  
.Stil1 {  
 font-family: Arial, Helvetica, sans-serif;  
 color: #FFFFFF;  
 font-weight: bold;  
}  
.Stil2 {font-family: Arial, Helvetica, sans-serif}  
-->  
</style>  
</head>  
  
<body bgcolor="#006F8A">  
  
<div id="navcontainer">  
<ul id="navlist">  
<li id="active"><a href="#" id="current">News</a></li>  
<li><a href="Geschichte.html" target="mainFrame" onclick"FrameAendern ("menue_left_geschichte.html", "left_menue")>Geschichte</a></li>  
<li><a href="#">Kooperationspartner</a></li>  
<li><a href="#">Unser Team</a></li>  
<li><a href="#">Unternehmensphilosophie</a></li>  
<li><a href="#">Öffnungszeiten</a></li>  
<li><a href="#">Ausbildung</a></li>  
  
<li><a href="Geschichte.html" target="mainFrame" onclick"FrameAendern ("menue_left_geschichte.html", "left_menue")>Geschichte</a></li>  
  
</ul>  
</div>  
</body>  
</html>  

soweit so schlecht, mein mainframe funktioniert auch, nur das menü im linken frame wechselt sich nicht...

ich starre da jetzt schon 2 tage drauf aber irgentwie will es nicht in mein hirn rein warum das nicht geht

wisst ihr evtl rat?

  1. Hallo Trinex,

    Vielleicht sollte man, bevor man überhaupt anfängt eine Webseite zu erstellen, ein wenig Ahnung haben welche Beschreibungs-, Programmier-, und Scriptsprachen es auf dieser Welt gibt. So richtig schwer ist das nicht, wenn man sich auf wenige beschränkt. Übrigens, zu Deiner Frage: Jehova!

    Afra

    1. Hallo Trinex,

      Vielleicht sollte man, bevor man überhaupt anfängt eine Webseite zu erstellen, ein wenig Ahnung haben welche Beschreibungs-, Programmier-, und Scriptsprachen es auf dieser Welt gibt. So richtig schwer ist das nicht, wenn man sich auf wenige beschränkt. Übrigens, zu Deiner Frage: Jehova!

      Afra

      Hallo Afra, danke für deine Antwort

      leider ist das alles manchmal nicht so einfach, aber egal, gehört nicht zum thema...

      was deinen link betrifft,

      1. Hallo Trinex,

        Vielleicht sollte man, bevor man überhaupt anfängt eine Webseite zu erstellen, ein wenig Ahnung haben welche Beschreibungs-, Programmier-, und Scriptsprachen es auf dieser Welt gibt. So richtig schwer ist das nicht, wenn man sich auf wenige beschränkt. Übrigens, zu Deiner Frage: Jehova!

        Afra

        Hallo Afra, danke für deine Antwort

        leider ist das alles manchmal nicht so einfach, aber egal, gehört nicht zum thema...

        was deinen link betrifft,

        sry auf return gekommen -,-

        also, was deinen link betrifft, ich habe mir das mal durchgelesen und fand nur den selfhtml beitrag der genau auf mein problem passt, ich habe den auch schon 1-1 so nachgebaut (siehe quelltext) nur ohne erfolg

        ich meine, ich mach mit sicherheit was falsch, soviel ahnung hab ich schon noch das ich weiß das nichts ohne grund passiert, nur den grund wüsste ich eben gerne um mich zu verbessern :-)

        1. Hi,

          ich meine, ich mach mit sicherheit was falsch, soviel ahnung hab ich schon noch das ich weiß das nichts ohne grund passiert, nur den grund wüsste ich eben gerne um mich zu verbessern :-)

          das ist die beste Voraussetzung :-) Wie gesagt: Zunächst einmal solltest Du Dich über die Nachteile von Frames informieren. Für Anfänger sind die Mistviecher einfach viel zu schwer zu handhaben. Dann gilt bei *jedem* Problem, auf das Du stößt: Erst mal validieren! Nur so kannst Du grundsätzliche Fehler ausschließen.

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
      2. Hallo Trinex,

        leider ist das alles manchmal nicht so einfach, aber egal, gehört nicht zum thema...

        Wie Du es auch schon von Cheatah gelesen hast, Dein Code hat ziemliche Fehler. Schau mal nach Deinen Eventhandlern. So können die nicht funktionieren.

        Schönen Gruß

        Afra

    2. Hallo,

      Vielleicht sollte man, bevor man überhaupt anfängt eine Webseite zu erstellen, ein wenig Ahnung haben welche Beschreibungs-, Programmier-, und Scriptsprachen es auf dieser Welt gibt. So richtig schwer ist das nicht, wenn man sich auf wenige beschränkt.

      Vielleicht sollte man, bevor man überhaupt anfängt, auf ein Posting hier im Forum zu antworten, ein wenig das Problem des Fragestellers untersuchen und darüber nachdenken, was dem Fragesteller weiterhelfen könnte. So richtig schwer ist das nicht, wenn man konkret auf offensichtliche Fehler hinweist.

      Mathias

  2. Hi,

    ich starre da jetzt schon 2 tage drauf aber irgentwie will es nicht in mein hirn rein warum das nicht geht

    vielleicht hättest Du die zwei Tage nutzen sollen, um den Code zu validieren und Dich zu informieren, warum Frames Dir und Deinen Besuchern niemals Freude machen werden. Das hätte Dir viel Zeit und Ärger gespart.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Boah,

      kleine Ergänzung:

      Subject: Mehrere Frames via Java ändern

      Soweit ich weiß ist es nicht möglich, mittels Java Frames zu ändern. Hierfür ist JavaScript sehr viel geeigneter - sofern man bei einer clientseitig optionalen Technik überhaupt von Eignung sprechen kann.

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Hallo Cheatah!

        Soweit ich weiß ist es nicht möglich, mittels Java Frames zu ändern. Hierfür ist JavaScript sehr viel geeigneter - sofern man bei einer clientseitig optionalen Technik überhaupt von Eignung sprechen kann.

        Wenn er in einem Applet den Frame emuliert und dann ...

        SCNR - ich höre auf ;)

        Schönen Gruß

        Afra

  3. function FrameAendern (URI, Framename) {
      parent[left_menue].location.href = URI;
    }

    Du hast wenig sinnvolle Änderungen an dieser Funktion vorgenommen.

    Diese Anweisung sucht nach einem Frame, dessen Namen in der Variable (!) left_menue steht. Diese Variable gibt es aber nicht, daher gelingt auch der Zugriff auf den Frame nicht.

    Entweder du schreibst:
    parent.left_menue.location.href

    Dann wird immer der linke Menü-Frame geändert.

    Oder du belässt die ursprüngliche Funktion:

    parent[Framename].location.href

    Dann kannst du der Funktion den Framenamen übergeben.

    <a href="..." onclick="FrameAendern('menue_left_geschichte.html', 'left_menue')">

    Und beachte bitte die korrekte Schreibweise der Attribute sowie der String-Begrenzer im onclick-Attribut.

    <a href="Geschichte.html" target="mainFrame" onclick"FrameAendern ("menue_left_geschichte.html", "left_menue")>

    Schau dir das mal genau an und du wirst einige Fehler finden.

    Erstmal notiert man das Attribut so:

    onclick="..."

    Der Attributwert wird durch doppelte Anführungszeichen begrenzt, also kannst du im JavaScript-Code darin keine solchen verwenden, sondern musst auf einfache Anführungszeichen ausweichen:

    onclick="funktion('String-Parameter')"

    So kommst du zum Code wie im obigem Beispiel.

    Mathias