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

[FRAGE] url von iframe abfragen, contentWindow.location.href, same origion policy,...

rrr

New member
Hy,

ich würde gerne die aktuelle URL eines iFrames abfragen (der User kann im iFrame ja navigieren).
Wenn die Domain der Seite mit der Domain des iFrames ident ist, geht das auch ohne Probleme.
Code:
alert(document.getElementById(obj).contentWindow.location.href);

Das Problem sind eben verschiedene Domains.
Gibt es da keine workarounds?
Beim "googeln" bin ich unter anderem auf folgenden Link gestoßen:
https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS
Ich komme damit nicht weiter.
Hat diesen Vorschlag schon jemand probiert?

Ich habe auch bereits diesen Vorschlag probiert:
Using Fiddler to help develop cross domain capable JavaScript web applications | Platformability

Ohne Erfolgt.

Mein TestHTML wäre:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>Test</title>
	<script type="text/javascript">
		function getSrc(obj) 
		{
			alert(document.getElementById(obj).contentWindow.location.href);
		} 
	</script>
</head>
<body>
	<h1>iFrame URL</h1>
	<a href="#" onclick="javascript:getSrc('myframe')">Get URL of iFrame</a></p>

	
	<!-- Does not work because of "cross domain scripting", "same origion policy"... -->
	<!-- Same origion policy: the domain name have to be equal! -->
	<!-- So I can't query the URL of the following iFrame content :( -->
	<!--<iframe src="https://wikipedia.org" height="600" width="800" name="myframe" id="myframe" >alt</iframe> -->


	<!-- Works. Because abc.html is at the same domain (my machine) like this document. -->
	<iframe src="./abc.html" height="600" width="800" name="myframe" id="myframe" >alt</iframe>

</body>
</html>


Hat jemand eine idee?
Es muss doch für mich lokal eine Einstellung im Firefox geben, welche dies zulässt? Oder irgendetwas anderes?

Liebe Grüße,
rrr
 
Meinst du die src-source des IFrames? Das geht mit document.getElementById("myframe").src

Wenn du eine URL innerhalb eines "fremden" IFrames meinst, wird nicht zuverlässig funktionieren! Man kann mittels JS einfach nicht auf Elemente innerhalb eines fremden IFrames zugreifen. Stichwort: SOP (Same-Origin-Policy)
 
Geht es nur um deinen Entwicklungsbrowser? Wenn ja, könntest du dir ein Browser-AddOn schreiben, dass die SOP-Grenze für deine bestimmte Anwendung aufweicht.

Aber was willst du denn genau machen? Vielleicht gibt es dafür schon ein einfachere Lösung.
 
Es geht um Terminals, wo die Benutzerführung so einfach wie möglich sein soll.
Ich habe eine LightBox mit meinem iFrame, und in diesem iFrame kann sich der User anmelden.
Klickt er jedoch auf "Abbrechen" wird er auf eine Seite weitergeleitet, die nur verwirrt.
Deshalb würde ich gerne die URL abfragen, und wenn die URL == X ist, würde ich die LightBox wieder schließen, um den Anwender wieder auf meine Seite zurück zu holen.

Ein zweiter Tab hierfür ist auch unerwünscht.

Gibt es noch kein Add-On welches SameOrigionPolicy und Cross Domain Sachen zulässt?


Liebe Grüße

P.S.: Add-On "Force CORS" habe ich schon probiert. Verändert leider nichts. :(
 
Zuletzt bearbeitet:
Hast du denn Einfluss auf die Seite, auf der das "Abbrechen" ist?

Soweit ich das sehe, müsste "Force CORS" aber genau das machen, was du gerne hättest - du musst es nur für die speziellen Domains, um die es geht, auch aktivieren. Ich hab' das so verstanden, dass da per Default gar nichts verändert wird.
 
Ah... es geht um HTTPS... da kann natürlich sein, dass das nicht funktioniert.

Aber du könntest dir eventuell selbst ein AddOn schreiben, dass die Kommunikation zwischen dem iFrame und der Seite übernimmt. Also nicht die SOP umgehen, sondern über die erweiterten Rechte, die ein AddOn hat, direkt die Kommunikation machen.

Auch hab' ich irgendwas im Kopf, dass man im Firefox die SOP komplett abschalten kann - finde es aber gerade nicht mehr und bin mir auch nicht sicher, ob das nicht nur für AJAX war.

Das einzige, was mir sonst noch einfällt ist ein Proxy, der das SSL aufmacht, die Header hinzufügt und dann das SSL wieder dranbaut - das ist aber natürlich ein Sicherheits-GAU...
 
Auch hab' ich irgendwas im Kopf, dass man im Firefox die SOP komplett abschalten kann - finde es aber gerade nicht mehr und bin mir auch nicht sicher, ob das nicht nur für AJAX war.

Da ich mich im Moment auch mit Ajax Requests im FF Addon rumschlage, habe ich zufällig heute irgendwann diese Seite durchgelesen: https://developer.mozilla.org/de/docs/DOM/XMLHttpRequest

Du meinst vermutlich die Eigenschaft "mozSystem" bei den Nicht-Standard-Eigenschaften. Dies scheint aber nur für Ajax Requests zu gelten.
 
Zurück
Oben