jQuery iFrame

RedShot

Mitglied
Hallo,

ich habe eine Seite in der ich einen Dialog aufrufe, der einen iFrame enthält.
In diesem iFrame ist ein Button.
Wenn der Button nun geklickt wird, soll der Dialog geschloßen werden.
Habe damit jetzt Stunden verbracht es hinzubekommen, aber es will einfach nicht funktionieren.
Hier mal die Idee, die ich hatte:

Code:
$('input').click(function() {
	$("body", parent.document).find('#dialog').dialog('close');
});

Danke schonmal für Hilfe

Grüße
RS
 
Moin,

ich habe zwar keine Info gefunden, welche dies bestätigt, aber es scheint, als wäre auf diesem Wege der Dialog nicht bekannt(sollte er eigentlich, da ja das Elterndokument als Scope angegeben ist).

Workaround:

Erstelle im Elterndokument eine Funktion zum Schliessen des Dialogs, bspw:
Code:
 function closeDialog(selector)
  {
    $(selector).dialog('close');
  }

...und rufe diese aus dem iFrame heraus auf:
Code:
$(window).load(function(){$('input').click(function() {
	parent.closeDialog('#dialog');
});});
 
Hallo,

danke das funktioniert, aber finde ich persönlich nicht als die schönste Method :o)
Werde es wohl vorerst mal so nehmen.

Danke nochmals!
 
Hallo miteinander!

Ich will mich hier kurz ins Thema einklinken weil ich selbst schon 2 Tage nach einer Lösung suche, diese aber leider nicht finde.

kurz um:

ich möchte ebenfalls aus dem "Mutterfenster" eine dialog.iframe öffnen lassen .. in dieser Iframe ist wiederrum ein CLOSE Link der das dialog window schließen und das "Mutterfenster"
aktualisieren soll.

Ich bin nun dieser umschreibung hier gefolgt aber irgendwie noch immer nicht auf einen grünen zweig gekommen (er schließt das mutterfenster nicht)

mein Source:

Mutterfenster:

Code:
	<script type="text/javascript">
	$(function() {
		$("a.eintragen").click(function(e) {
			e.preventDefault();
			var $this = $(this);
			var horizontalPadding = 30;
			var verticalPadding = 30;
	        $('<iframe frameborder="0" id="externalSite" class="externalSite" src="' + this.href + '" />').dialog({
	            title: ($this.attr('title')) ? $this.attr('title') : 'Termin fixieren',
	            autoOpen: true,
	            width: 410,
	            height: 330,
	            modal: true,
	            resizable: true,
				autoResize: true,
	            overlay: {
	                opacity: 100.0,
	                background: "black"
	            }
	        }).width(800 - horizontalPadding).height(360 - verticalPadding);
		});
	});

 function closeDialog(selector)
  {
   $(selector).dialog('destroy');
  }
	</script>

iframe seite:

Code:
<a href="#" id="btnDone">CLOSE</a>
    <script type="text/javascript">
    $(window).load(function(){$('#btnDone').click(function(event) {
	parent.closeDialog('externalSite');
});});
    </script>

Danke schonmal für eure Zeit!

lg cnet
 
Hi,

wenn ich das richtig überblicke, übergibst du lediglich den falschen Selektor - es fehlt die Doppelraute:
Code:
parent.closeDialog('#externalSite');

Ciao
Quaese
 

Neue Beiträge

Zurück