Titelzeilenabfrage
Fossbeer
- javascript
Hallo liebe JS-Gemeinde.
Zuersteinmal ein kurzes code-Schnipsel:
("weiter" ist ein definierter frame)
(..)
01-parent.weiter.location = "http://localhost:8080/wep/test.html";
02-
03-var titel;
04-
05-titel=parent.weiter.document.title;
(..)
Das funktioniert vom Prinzip, aber leider nur, wenn ich auf eine lokale Datei wie z.B. >>parent.weiter.location = "test.html" << verweise. Mache ich es über den Server, wie oben angegeben, dann kommt folgende Fehlermeldung:
-------------------------------
Zeile 05
Fehler: Zugriff verweigert
Code: 0
-------------------------------
und erst zwar dann, wenn der Server läuft, also wenn "http://localhost:8080/wep/test.html" erreicht wird.
Die Seite wird auch fehlerfrei dargestellt, er scheint nur keinen Zugang zu den Titeldaten zu erhalten.
WARUM geht das bitte nicht?
Danke für deine Antwort.
Kurz zum Sinn des Scripts:
Es wird regelmäßig versucht, auf "http://localhost:8080/wep/test.html" zuzugreifen, um zu überprüfen, ob die Seite existiert, bzw. ob der Server schon oben ist. Und es funktioniert. Fast.
Danke nochmal.
-----------------------------------------------------
Es wurde Win98 oder besser verlangt, also installierte ich Linux.
Hi,
Das funktioniert vom Prinzip, aber leider nur, wenn ich auf eine lokale Datei wie z.B. >>parent.weiter.location = "test.html" << verweise. Mache ich es über den Server, wie oben angegeben, dann kommt folgende Fehlermeldung:
Der Zugriff auf Webseiten von einem anderen Server ist per Javascript nicht möglich.
Egal, auf welches Element Du zugreifen willst - es geht nicht.
WARUM geht das bitte nicht?
Aus Sicherheitsgründen (same origin policy).
Stell Dir vor, Dir jubelt jemand ein Frameset unter, in dem in einem Frame Deine Home-Banking-Seite dargestellt wird.
Jetzt könnte von einem anderen Frame aus auf die Informationen Deiner Home-Banking-Seite zugegriffen werden (und diese z.B. an den Besitzer des Framesets gesendet werden).
Willst Du das wirklich?
Da der Browser nicht erkennen kann, ob Du gute oder böse Absichten hast, blockt er grundsätzlich.
cu,
Andreas
Hi,
WARUM geht das bitte nicht?
Aus Sicherheitsgründen (same origin policy).
selbst wenn es sich um die selbe Protokoll/Host/Port-Kombination handelt, wird das Script versagen. Das Timing stimmt nicht.
Cheatah
Nein, das will ich nicht wirklich.
Wenn ich den Fehler wenigstens abfangen könnte....
Aber ich habe noch andere Ideen!
Danke,
Alex
Hi!
Einmal eine Frage, warum etwas _doch_ funktioniert (zumindest in einigen Browsern:
http://www.sparkasse-guetersloh.de
Im IE 5 funktioniert die Navigation nicht, im IE 6 und Firebird schon. Wurden da die JavaScript-Sicherheitsbestimmungen gelockert?
Und kann man vielleicht den Zugriff explizit erlauben?
Gruß
mdkiller
hi,
Einmal eine Frage, warum etwas _doch_ funktioniert (zumindest in einigen Browsern:
http://www.sparkasse-guetersloh.de
Im IE 5 funktioniert die Navigation nicht, im IE 6 und Firebird schon. Wurden da die JavaScript-Sicherheitsbestimmungen gelockert?
also ich kann auf der seite im IE 5.0 navigieren, so wie ich das auf den ersten blick sehe.
wo du jedoch die verbindung zur thematik "cross domain scripting" siehst, kann ich nicht erkennen.
gruss,
wahsaga
hi,
rehi,
Einmal eine Frage, warum etwas _doch_ funktioniert (zumindest in einigen Browsern:
http://www.sparkasse-guetersloh.de
Im IE 5 funktioniert die Navigation nicht, im IE 6 und Firebird schon. Wurden da die JavaScript-Sicherheitsbestimmungen gelockert?
also ich kann auf der seite im IE 5.0 navigieren, so wie ich das auf den ersten blick sehe.
Hast du im linken Bereich eine Navigatin mit Prvatkunden, Firmenkunden etc.? Dann funktioniert es auch im IE 5.0 Ich hab IE 5.5 und da funktioniert es nicht, eben wegen "Erlaubnis verweigert"
Der Navigationsframe und das Frameset liegen auf http://www.sparkasse-guetersloh.de/ und der Hauptframe liegt auf http://www.i-basis.de/. Und der Hauptframe aktualisiert den Nav-Frame...
wo du jedoch die verbindung zur thematik "cross domain scripting" siehst, kann ich nicht erkennen.
Ich eigentlich schon. Die Seite liegt auf 2 unterschiedlichen Domains und beeinflussen sich gegenseitig. Und in den meisten Browsern funktioniert es.
gruss,
wahsaga
Gruß
mdkiller
hi,
Hast du im linken Bereich eine Navigatin mit Prvatkunden, Firmenkunden etc.? Dann funktioniert es auch im IE 5.0 Ich hab IE 5.5 und da funktioniert es nicht, eben wegen "Erlaubnis verweigert"
ja, diese navigation habe ich im IE 5.0 vor augen.
Der Navigationsframe und das Frameset liegen auf http://www.sparkasse-guetersloh.de/ und der Hauptframe liegt auf http://www.i-basis.de/. Und der Hauptframe aktualisiert den Nav-Frame...
hier kann ich dir im augenblick nicht ganz folgen.
wenn ich im navigationsframe über das kontextmenü die seitenadresse anzeigen lasse, so bekomme ich
http://www.sparkasse-guetersloh.de/3289547C783FCB89/nav.htm
angezeigt.
wenn ich z.b. auf "privatkunden" klicke, wird in den inhaltsbereich die seite
http://www.sparkasse-guetersloh.de/3289547C783FCB89/pb.htm
geladen.
ich kann jetzt gerade keinen navigationspunkt finden, der eine seite in den inhaltsframe laden würde, die nicht auf www.sparkasse-guetersloh.de liegt ...
gruss,
wahsaga
Hi!
ich kann jetzt gerade keinen navigationspunkt finden, der eine seite in den inhaltsframe laden würde, die nicht auf www.sparkasse-guetersloh.de liegt ...
Der Aufbau des Framesets ist folgender:
___________________________________________________________
| | idgen |
|logo |___________________________________________________|
| | idhist |
|______|___________________________________________________|
| | |
| nav | pb |
|______|___________________________________________________|
In die Frames nav und pb wird jeweils die Datei leer.htm geladen. Anschließend wird per <frameset onload> die Datei /pb.htm in den Frame pb geladen. Und diese enthält nur folgendes:
<html>
<head>
<meta name="Generator" content="S-WEB-Designer" />
<meta http-equiv="refresh" content="0; URL=http://www.i-basis.de/spk/gt/html2002/haupt.phtml">
<title></title>
</head>
<body>
</body>
</html>
Und somit liegt die aufgerufene Seite auf einer anderen Domain. Die Seite enthält dann wiederum:
<body onLoad="parent.nav.location.href='http://www.sparkasse-guetersloh.de/nav.htm';">
Und somit wird eine Seite geändert, die auf einer anderen Domain liegt, was ja eigentlich verboten ist. Oder doch nicht?
gruss,
wahsaga
Gruß
mdkiller
Hi,
Und somit liegt die aufgerufene Seite auf einer anderen Domain. Die Seite enthält dann wiederum:
<body onLoad="parent.nav.location.href='http://www.sparkasse-guetersloh.de/nav.htm';">
Hier wird nicht auf ein Dokument von einer anderen Domain zugegriffen.
Hier wird nur in ein Fenster (parent.nav) ein neues Dokument geladen.
cu,
Andreas
Hi!
Hier wird nicht auf ein Dokument von einer anderen Domain zugegriffen.
Hier wird nur in ein Fenster (parent.nav) ein neues Dokument geladen.
Ach so, ich dachte, das wäre auch verboten. Aber warum gibt der IE 5.5 dann die Fehlermeldung:
<img src="http://sparkasseiserlohn.de/images/fehler.jpg" border="0" alt="">
cu,
Andreas
Gruß
mdkiller
hi,
Und somit liegt die aufgerufene Seite auf einer anderen Domain. Die Seite enthält dann wiederum:
<body onLoad="parent.nav.location.href='http://www.sparkasse-guetersloh.de/nav.htm';">
Und somit wird eine Seite geändert, die auf einer anderen Domain liegt, was ja eigentlich verboten ist. Oder doch nicht?
in der seite wird dadurch nichts geändert, es wird lediglich die komplette seite durch eine andere ausgetauscht.
wenn du beispielsweise versucht, ein formularfeld einer "fremden" seite auszulesen, sieht die sache naturgemäss ganz anders aus (stichwort: login-dialog deine homebanking-seite ...)
gruss,
wahsaga