У меня есть веб-сайт, который использует iframe. Сам iframe является содержанием веб-сайта. Теперь в iframe я хотел бы использовать Диалоговое окно jQuery. Однако, когда использование его, наложение и диалоговое окно только отображено в iframe не на родителе. Моему родительскому HTML определили следующий HTML для диалогового окна:
<div id="modalHolder"></div>
В моем iframe я использую следующий JavaScript, чтобы создать диалоговое окно и показать его.
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(); }
});
Для показа диалогового окна, я использую это:
dlg1.dialog('open');
Поскольку функция диалога запущена в контексте ифрейма, она всегда будет создавать div-диалоги (как полупрозрачный div фона и div диалога) как дочерние элементы ифрейма. Несмотря на то, что вы забираете элемент из родительского документа, фактический скрипт всё равно выполняется в ифрейме. Если у вас есть Firefox и Firebug, вы должны иметь возможность использовать HTML-инспектор, чтобы увидеть, что происходит.
Я могу придумать только два решения: