题
我有一个网站,使用的一个框架.该框架本身的内容的网站。现在的框架,我想使用延对话。但是当使用,复盖和对话是唯一显示的内部框架不在父母。我的父html具有以下html定义的对话:
<div id="modalHolder"></div>
在我面我使用的以下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');
解决方案
由于该对话框功能的IFRAME的上下文中运行时,它将总是创建对话框的div(像半透明背景的div和对话框DIV)作为iframe的儿童。即使你抓住从父文档的元素,实际的剧本仍然在iframe运行。如果你使用Firefox和Firebug的,你应该能够使用HTML检查,看看发生了什么事情。
我只能认为两种解决方案:
- 使用了jQuery对话框库的修改版本。我根本就不 推荐这
- 将您的JavaScript,以便它的父文档的上下文中执行。 醇>
其他提示
有的是简单和优美的解决方案:
- 包括能力和jqueryui到你的父窗口
- 在这你可以访问的父JQuery目框架内
例如:
var $jParent = window.parent.jQuery.noConflict();
var dlg1 = $jParent('#modalHolder');
dlg1.dialog();
不隶属于 StackOverflow