Markus Kriegl: Überprüfen ob Funktion in einem anderem Frame ist

Hallo!

Ich habe folgendes Problem. Ich möchte eine Funktion aus einem anderem Frame aufrufen und dem User als Link anbieten. Wenn die Funktion im anderem Frame nicht existiert(da sie nicht in jeder Seite implementiert sein soll die geladen werden kann) soll der Link natürlich nicht angezeigt werden.
Ich verwende momentan folgende Lösung, bei der ich aber den Verdacht habe dass sie nicht wirklich konsistent ist, denn hin und wieder ist der Link nicht da obwohl er aufscheinen sollte. Solche Fehler dürfen aber im finalen Programm nicht existieren.

Das ist die momentane Lösung:
<div id="speicher"><a href="javascript:parent.mainFrame.SaveData()">Speichern</a></div></span>
if(parent.mainFrame.document.title != "SAVE")
{
  var speicher = document.getElementById("speicher");
  speicher.style.display="none";
}

Wie man sieht frage ich hier nach dem Titel der page ab.

Vielleicht hat jemand eine elegantere Lösung für mich.

Danke schon mal im Voraus, Markus

  1. Hallo Markus.

    Ich habe folgendes Problem. Ich möchte eine Funktion aus einem anderem Frame aufrufen und dem User als Link anbieten. Wenn die Funktion im anderem Frame nicht existiert(da sie nicht in jeder Seite implementiert sein soll die geladen werden kann) soll der Link natürlich nicht angezeigt werden.

    Ich bin zwar im Umgang mit Frames in Kombination mit JS nicht sonderlich geübt, doch würde ich versuchen, den Link von der Funktion aus dem Elternframe in den Frame schreiben zu lassen. (Mit dem node-Objekt und den dazu passenden Methoden des document-Objektes.)

    Existiert die Funktion nicht, wird der Link nicht in den Frame geschrieben.

    Einen schönen Donnerstag noch.

    Gruß, Ashura

    --
    Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
    30 Days to becoming an Opera8 Lover -- Opera 8.02 mit Bittorent-Unterstützung
    Meine Browser: Opera 8.01 | Firefox 1.0.5 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
    [Deshalb frei! - Argumente pro freie Software]
  2. Das ist die momentane Lösung:
    <div id="speicher"><a href="javascript:parent.mainFrame.SaveData()">Speichern</a></div></span>
    if(parent.mainFrame.document.title != "SAVE")
    {
      var speicher = document.getElementById("speicher");
      speicher.style.display="none";
    }

    Wie man sieht frage ich hier nach dem Titel der page ab.

    Vielleicht hat jemand eine elegantere Lösung für mich.

    Das Problem ist das der Frame natürlich erts geladen sein muss, aber dann ist es einfach:

    if(typeof parent.mainFrame.SaveData != 'function')
    {
    var speicher = document.getElementById("speicher");
    if(speicher) speicher.style.display = "none";
    }

    Struppi.