• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

frame "pingen"

afoeder

New member
Hallo!

Ich habe in einem Frame namens "fraBeispiel" eine Funktion TestPing geschrieben:

function TestPing()
{ return "ping"; }

nun kann ich ja aus einem anderen Frame heraus

alert(parent.fraBeispiel.TestPing());

machen, und es wird mir "ping" im alertfenster ausgegeben, ich kann das also frame-übergreifend machen.

Jetzt befindet sich aber innerhalb des fraBeispiel eine fremde Website, in der sich logischerweise auch die Funktion TestPing nicht mehr befindet.
wenn ich aus dem anderen frame das alert-beispiel machen möchte, bekomme ich eine "zugriff verweigert"-fehlermeldung; sehe ich ja ein.

Gibt es eine Möglichkeit, zu testen, ob die in fraBeispiel befindliche Webpage zum eigenen Projekt gehört?

Grund:
ich habe im fraBeispiel ein Script, das ausgeführt werden soll. Wenn die Seite in fraBeispiel aber eine fremde Seite ist, soll das Script aber nicht ausgeführt werden, da ich ja sonst eine zugriff-verweigert-fehlermeldung erhalte...



vielen Dank,

Adrian föder
 
Klingt kompliziert....

..... aber vielleicht gibt's ne einfache Lösung.
Es muß ja einen Grund geben, warum die fremde Seite bei Dir angezeigt
wird. Wenn es gewollt ist, hätte ich folgenden Vorschlag.
Setze in Dein Frame mit dem Script eine Variable und schreibe einen Wert
oder ein Wort rein. Solange der Wert da ist, ist alles OK.
Wird aber der Link angeklickt, der dann die fremde Seite anzeigt, dann
schreibe einen anderen Wert rein.
Dann brauchst Du ja nur noch abfragen und entsprechend die Funktion
ausführen oder nicht.

Kommt allerdings die Seite zufällig rein, dann könnte man ja in der mittleren
Frame eine Variable setzen und diese dann abfragen. Wenn ich mir's so recht
überlege, ist dies sogar die einfachere Variante.

Gruß Steffen
 
okay, das ist in der tat ein bisschen kompliziert formuliert.

ich "re-formuliere" noch mal :)

aus frame1 möchte ich eine funktion in frame2 ausführen.
wenn aber in frame 2 eine fremde seite geladen ist (kommt vor, ist beabsichtigt), und ich aus frame1 die funktion ausführen will, ist sie in frame2 nicht mehr vorhanden, da ja eine fremde seite darin ist, und ich bekomme einen script-error.

wie kann ich frame2 darauf testen, ob eine seite von mir oder eine fremde seite darin geladen ist, um davon abhängig zu machen, ob ich das script ausführen lassen will oder nicht.


danke,
adri
 
Wäre dann von mir vorgeschlagene Lösung 1 nicht gut?

Es wird doch bestimmt ein Link betätigt, das diese Seite geladen wird.
In diesen Moment änderst Du den Wert.
 
das ist richtig.
aber der Aufwand ist größer, da ich dann jeden Link entpsrechend anpassen muss.

Außerdem wird dann JavaScript für die Funktion der Seite benötigt, nicht nur zur Verschönerung.

ich bin zwar der meinung, das jeder JavaScript anhaben sollte, aber da dies eine Kundenwebsite ist (für einen bekannten, ich mach das habwegs umsonst, aber es ist halt eine "kommerzielle" seite...)

danke,
adrian
 
Moin moin Adrian,

ich weiß jetzt nicht in wieweit sich Dein Problem schon erledigt hat, es lungert her ja schon seit etwa einer Woche rum. Also zuerst zu dem Java Script ansich, zum einen dient auch Steffens Tips zur verschönerung, das der Fehler höchst unschön ist und zum anderen klappt Deine ganze Funktion nicht, wenn Java Script ausgeschalltet ist. Aber um die Lösung auch noch einmal zu Formulieren (wenn ich sie richtig verstanden habe, sonnst wäre es Lösung 3 wie ich es machen würde...) Setzte in Frame 1 eine Variable zb "Fensterda", da schreibst Du einfach eine "1" rein, wenn Du nun von Frame 2 eine andere Seite aufrufst, änderst Du in Frame 1 die Variable "Fensterda" in "0" und somit brauchst Du diese Variable nur noch abfragen bevor Du Deine Funktion startest.
In diesem Sinne

Marko
 
Zuletzt bearbeitet:
Zurück
Oben