Iframe Adresse abfragen und an JavaScript weitergeben
TASM
- javascript
0 hein0 TASM0 bluntburn0 TASM0 Sven Rautenberg0 TASM
0 bluntburn
0 Sven Rautenberg
Hallo, da ist bei mir ein Problem enstanden und zwar mit der Abfrage der aktueller Adresse von einem Iframe. Ich habe eine bestimmte Seite, wo in einen Iframe andere Seite geladen wird, so viel ist schon mal klar. Manche werden sich wohl wundern, ob ich es etwa selber nicht weiß, was ich in diesen IFrame geladen habe, und da kann ich ja sagen, ich weiß es eben nicht. Das Problem ist es, dass die Iframeseite(die zu ladende Seite), einen Verweis auf andere Seite hat, wohin es dann automatisch in diesem Iframe übergeht. Also kurz gesagt, von mir ausgewählte Iframeseite wird geladen und nach dem Ladevorgang gleich an ihre Stelle kommt schon die andere Seite, derer Adresse sich ständig ändert, so dass ich nicht weiß, was für eine Adresse mich dieses Mal in diesem Iframe erwartet. Was ich jetzt möchte, ist es diese neue Adresse in Iframe einfach abfragen und an Javascript weitergeben, um damit einen neuen Link zu generieren, das auf die Datei verweist, die auf zu zweitem Mal geladener Seite enthalten ist. Ich hätte einfach gerne einen Script, der die Adresse von einem Iframe abfragt.
ohne es ausprobiert zu haben, aber ich glaube du müsstest dem iframe per attribut "name" einen namen geben, meinetwegen "meiniframe" und dann kannst du per js über window.meiniframe.location.href die gerade geladene url auslesen. (das "window" kann man meist auch weglassen.)
gruß hein
<html>
<head>
</head>
<body onLoad=JavaScript:alrt()>
<iframe src="http://www.online.de/" name="iframe10" width=700 scrolling=no height=600></iframe>
<script type="text/javascript">
<!--
function alrt() {
alert("Aktueller Pfad: " + window.iframe10.location.href);
}
//-->
</script>
</body>
</html>
Was mache ich hier falsch?
Hi TASM,
alert("Aktueller Pfad: " + window.iframe10.location.href);
window.document.iframe10.loc...
Grüße,
bluntburn
Hi TASM,
alert("Aktueller Pfad: " + window.iframe10.location.href);
window.document.iframe10.loc...
Grüße,
bluntburn
»»
Leute, sagt mir bitte, was ihr für eine Meldung kriegt?
Bei mir kommt entweder überhaupt nichts oder eine Fehlermeldung,
dass es versucht worden ist auf eine geschützte Variable zuzugreifen.
Mehr passiert bei mir ja nichts. Probiert es selber mal aus.
Es ist mir schon einfach interessant, ob es bei mir was nicht stimmt
oder noch was nicht in Ordnung ist.
<html>
<head>
</head>
<body onLoad=JavaScript:alrt()>
<iframe src="http://www.online.de/" name="iframe10" width=700 scrolling=no height=600></iframe>
<script type="text/javascript">
<!--
function alrt() {
alert("Aktueller Pfad: " + window.document.iframe10.location.href);
}
//-->
</script>
</body>
</html>
Moin!
Leute, sagt mir bitte, was ihr für eine Meldung kriegt?
Sag du uns, welche Meldung du kriegst. Wortwörtlich wäre es ganz gut, sonst muß man raten, was du wohl gemeint haben könntest.
Bei mir kommt entweder überhaupt nichts oder eine Fehlermeldung,
dass es versucht worden ist auf eine geschützte Variable zuzugreifen.
Es kommt die Meldung "Zugriff verweigert", wie ich vermute. Sie ist Indikator dafür, dass du etwas versuchst, was nicht gehen kann, weil die Sicherheitsvorschriften von Javascript es verbieten - also nicht, weil es grundsätzlich nicht ginge.
Javascript verbietet es, Zugriffe auf Fenster mit Inhalten fremder Domains zu machen. Dann ansonsten könnte man beispielsweise Passworte ausspähen, die in Formularen anderer Websites eingegeben wurden.
Deshalb (ich habe es gleich bei deiner ersten Frage so vermutet): Wenn du ein IFrame hast und dorthinein per HTML eine Seite einer anderen Domain lädst, war es das javascriptmäßig für dich gewesen. Du kriegst niemals die dann im IFrame angezeigte Seitenadresse heraus.
- Sven Rautenberg
Erstens, was ich sagen möchte, DANKE. Zweitens, du hattest völlig Recht mit der Felermeldung (ich habe es nur unter Opera ausprobiert),
und da habe ich schon selber vermutet, dass es wohl so eine Art des Schutzes ist. Ich habe es auch unter anderem mit history.back versucht, aber es lässt sich nicht mal auslesen, sonst wäre es ja auch eine Sicherheitslücke, wenn man jetzt so zu denken vermag.
Aber trotzdem, gibt es jetzt gar keine Möglichkeit es doch umzugehen?
Vielleicht kann man irgendwie der Hauptseite, wo iframe drinne ist,
den Hostnamen des iframes zuweisen, um damit den JavaScript zu täuschen oder sonst noch wie das hinzukriegen.
Moin!
Aber trotzdem, gibt es jetzt gar keine Möglichkeit es doch umzugehen?
Welchen Sinn würde ein Schutz machen, wenn man ihn ohne Probleme umgehen könnte (Sicherheitslücken aufgrund fehlerhafter Programmierung in ganz speziellen Browserversionen mal ausgenommen)?
- Sven Rautenberg
Hi TASM,
bei Javascript kannst Du keine Aktionen über Domaingrenzen hinweg durchführen. Bei Deinen Beispiel muss die Seite mit dem iFrame auch auf www.online.de liegen. Ansonst bekommst Du natürlich die Meldung "Zugriff verweigert" (im IE).
Grüße,
bluntburn
Moin!
<html>
<head>
</head>
<body onLoad=JavaScript:alrt()>
<iframe src="http://www.online.de/" name="iframe10" width=700 scrolling=no height=600></iframe>
<script type="text/javascript">
<!--
function alrt() {
alert("Aktueller Pfad: " + window.iframe10.location.href);
}
//-->
</script>
</body>
</html>
Was mache ich hier falsch?
Woran erkennst du, dass du etwas falsch machst?
- Sven Rautenberg