Fremde Framesets mit JavaScript sprengen
Torsten Mueller
Hallo,
folgendes Problem habe ich anzubieten:
Ich betreue eine Homepage, die aus einem Frameset mit 3 Rahmen besteht. Leider werden die Seiten mit den Contents oft von anderen Unternehmen in deren Frameset hineingezwungen. Ich suche daher nach einem Weg, mittels JavaScript die Seiten selbsttaetig ueberpruefen zu lassen, ob sie sich in einem "fremden" Frameset bewegen, und sich gegebenenfalls daraus zu befreien.
Das Problem hieran: Da ich schon vorher in einem Frameset aus drei Rahmen liege, kann jeder andere mit einem identischen Frameset all diejenigen Wert, die ich aus dem Window- und Parent-Objekt abfragen kann, nachmachen.
Meiner Meinung nach ist also der einzige Weg herauszufinden, ob ich in meinem eigenen Frameset bin, die URL aller Frameseiten zu ueberpruefen.
Dies aber geht nicht: Zwar kann ich parent.frames.length abfragen, nicht aber frames[x].location.href, da dies einen Fehler produziert: "Access for scripts from another domain disallowed".
Ich habe es bisher nicht geschafft, diesen Fehler zu unterdruecken, geschweige denn einen Weg zu finden, anders an die URL aller Frameseiten heranzukommen.
Zusammengefasst: Wenn ich in fremden Frames bin, will ich das erkennen. Dies duerfte nur ueber die URL aller Frameseiten gehen. Die aber kriege ich nicht.
Weiss dazu jemand einen Loesungsansatz?
Gruss,
Torsten
Hallo!
Ich glaube, die Loesung fuer Dein Problem ist der Befehl disableExternalCapture(), welche eine Methode vom window Objekt ist. Kannst mal in SelfHTML nachlesen (Quickbar: JavaScript/window(Objekt))
Gruesse,
Balazs
Dieser Weg waere denkbar, ist fuer mich aber keine Loesung. Grund: Die betroffene Homepage muss voll kompatibel zum Navigator _2.02_ sein - nicht fuer die Anwender "draussen", aber fuer die Mitarbeiter des Unternehmens selbst, die auf OS/2 arbeiten und dort nur ein sehr altes Netscape zur Verfuegung haben...
Hat jemand weitere Ideen?
Gruss,
Torsten
Hallo!
Ich glaube, die Loesung fuer Dein Problem ist der Befehl disableExternalCapture(), welche eine Methode vom window Objekt ist. Kannst mal in SelfHTML nachlesen (Quickbar: JavaScript/window(Objekt))
Gruesse,
Balazs
Dieser Weg waere denkbar, ist fuer mich aber keine Loesung. Grund: Die betroffene Homepage muss voll kompatibel zum Navigator _2.02_ sein - nicht fuer die Anwender "draussen", aber fuer die Mitarbeiter des Unternehmens selbst, die auf OS/2 arbeiten und dort nur ein sehr altes Netscape zur Verfuegung haben...
Netscape 2.02 für OS/2 entspricht doch aber Netscape 3 für andere Plattformen, oder irre ich mich da?
Ja, das stimmt, zumindest zu 90%. Ist uebrigens wirklich erstaunlich, was IBM in diese Version vom Navigator an Arbeit gesteckt hat.
Allerdings ist externalCapture erst ab dem Navigator 4.0 verfuegbar...
Torsten
Netscape 2.02 für OS/2 entspricht doch aber Netscape 3 für andere Plattformen, oder irre ich mich da?
Hallo Torsten,
Ich betreue eine Homepage, die aus einem Frameset mit 3 Rahmen besteht. Leider werden die Seiten mit den Contents oft von anderen Unternehmen in deren Frameset hineingezwungen. Ich suche daher nach einem Weg, mittels JavaScript die Seiten selbsttaetig ueberpruefen zu lassen, ob sie sich in einem "fremden" Frameset bewegen, und sich gegebenenfalls daraus zu befreien.
Ich weiss jetzt nicht, ob das alle Browser koennen, aber versuch mal:
if(parent.frames[0].name != "MeinErsterFrame")
top.location.href = "myindex.htm";
Denn Du weisst ja, wie Dein erster definierter <frame> heisst. Wenn es ein Frame-Set gibt, aber der Name des ersten Fensters nicht stimmt, ist es eben nicht Dein eigenes.
viele Gruesse
Stefan Muenz
Hallo,
Ich weiss jetzt nicht, ob das alle Browser koennen, aber versuch mal:
if(parent.frames[0].name != "MeinErsterFrame")
»» top.location.href = "myindex.htm";
Muss es ausser mit Navi2 auch mit anderen klappen?
Dann koennte es Schwierigkeiten geben. Auf name-Eigenschaft darf man nicht so einfach zugreifen, wenn die Seiten von einer anderen Domain kommen.
name
Property. A string specifying the name of an object.
Tainted?
Yes
Schau mal die Loesung in unserer FAQ an. Ich denke, die tut es mit allen Browsern:
http://irb-www.informatik.uni-dortmund.de/~sm/aw/js/faq/
Christine
Hallo,
das klappt zwar (frames[x].name ist nicht tainted, oder? - bei mir jedenfalls nicht), aber mit dieser Loesung ist es wie mit den frames.length: Ein findiger Kopierer muss sich nur einmal das Frameset anschauen, dann hat ers...
Torsten
Hallo,
Ich weiss jetzt nicht, ob das alle Browser koennen, aber versuch mal:
if(parent.frames[0].name != "MeinErsterFrame")
»» top.location.href = "myindex.htm";Muss es ausser mit Navi2 auch mit anderen klappen?
Dann koennte es Schwierigkeiten geben. Auf name-Eigenschaft darf man nicht so einfach zugreifen, wenn die Seiten von einer anderen Domain kommen.
name
Property. A string specifying the name of an object.
Tainted?
YesSchau mal die Loesung in unserer FAQ an. Ich denke, die tut es mit allen Browsern:
http://irb-www.informatik.uni-dortmund.de/~sm/aw/js/faq/Christine
Hallo,
das klappt zwar (frames[x].name ist nicht tainted, oder? - bei mir jedenfalls nicht), aber mit dieser Loesung ist es wie mit den frames.length: Ein findiger Kopierer muss sich nur einmal das Frameset anschauen, dann hat ers...
Sieht aus, als finden wir keine richtige *technische* Loesung. Es gibt aber noch eine andere Sorte von "Loesung".
Ich betreue eine Homepage, die aus einem Frameset mit 3 Rahmen besteht. Leider werden die Seiten mit den Contents oft von
anderen Unternehmen in deren Frameset hineingezwungen. Ich suche daher nach einem Weg, mittels JavaScript die Seiten
selbsttaetig ueberpruefen zu lassen, ob sie sich in einem "fremden" Frameset bewegen, und > sich gegebenenfalls daraus zu befreien.
Wenn Du fuer ein Unternehmen arbeitest, dann hat dieses Unternehmen vielleicht auch eine Rechtsverdreherabteilung, jedenfalls wenn's ein groesseres Unternehmen ist. Und die koennten es ja mal mit einer Unterlassungsklage versuchen. Ich kenne mich mit solchen Dingen nicht aus, aber ich koennte mir vorstelln, dass e gute Chancen auf Erfolg gibt.
BTW: Was sind das fuer Contents, auf die die anderen so scharf sind?
Calocybe