我有一个网站,使用的一个框架.该框架本身的内容的网站。现在的框架,我想使用延对话。但是当使用,复盖和对话是唯一显示的内部框架不在父母。我的父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检查,看看发生了什么事情。

我只能认为两种解决方案:

  1. 使用了jQuery对话框库的修改版本。我根本就不
  2. 推荐这
  3. 将您的JavaScript,以便它的父文档的上下文中执行。

其他提示

有的是简单和优美的解决方案:

  1. 包括能力和jqueryui到你的父窗口
  2. 在这你可以访问的父JQuery目框架内

例如:

var $jParent = window.parent.jQuery.noConflict();
var dlg1 = $jParent('#modalHolder');
dlg1.dialog();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top