Überprüfen ob Funktion in einem anderem Frame ist
Markus Kriegl
- javascript
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
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
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.