Mam witrynę internetową, która używa elementu iframe. Sam element iframe jest treścią witryny. Teraz w iframe chciałbym użyć okna dialogowego jQuery. Jednak podczas korzystania z niego nakładka i okno dialogowe są wyświetlane tylko wewnątrz elementu iframe, a nie w elemencie nadrzędnym. Mój rodzic ma następujący html html zdefiniowany dla okna:Wyświetl okno dialogowe jquery w oknie nadrzędnym
<div id="modalHolder"></div>
W moim iframe używam następujący skrypt do tworzenia okna i pokazać.
dlg1 = $(window.parent.document.getElementById("modalHolder"));
dlg1 = dlg1.dialog({
width: 300,
height: 150,
modal: true,
autoOpen: false,
resizable: false,
closeOnEscape: false,
draggable: false,
overlay:
{
backgroundColor: 'red',
opacity: 0.65
},
open: function(event, ui) { $(".ui-dialog-titlebar-close").hide(); }
});
Aby wyświetlić okno Używam tego:
dlg1.dialog('open');
Właściwie możesz być w stanie przenieść elementy dialogowe z elementu iframe do dokumentu nadrzędnego po ich utworzeniu, ale byłoby to naprawdę brzydkie. Coś jak ... # (".ui-widget-overlay, ui-dialog"). AppendTo (window.parent.document.body); – CalebD
Masz rację. Wygląda na to, że przenosi "modalHolder" z rodzica na element iframe. Przeniesię moje js z dziecka na rodzica. Próbowałem tego uniknąć. W każdym razie dzięki! – vikasde
Mogłem przenieść elementy do rodzica, jednak ich wysokość/szerokość musiałaby zostać ponownie obliczona. – vikasde