iframe外部的对话框

Dialog outside iframe

本文关键字:对话框 外部 iframe      更新时间:2023-09-26

我对JavaScript对话框有点问题。我在iframe中有一个按钮和一个对话框,其中包含下一个代码

$( "#correcto" ).dialog({
    width: 600,
    closeOnEscape: true,
    autoOpen: false,
    draggable: false,
    modal: true,
    show: {
    effect: "blind",
    duration: 200
  },
  hide: {
    effect: "blind",
    duration: 200
  }
});

和这个代码的按钮:

$( "#comprobar" ).click(function() {
      $( "#correcto" ).dialog( "open" );
});

代码是有效的,但打开对话框进入iframe,覆盖和模态只在iframe中显示/工作,看起来真的很奇怪。

我想知道是否有一些代码可以在iframe之外打开对话框。我发现另一个线程有类似的问题,我尝试在主页面(父级)中初始化对话框,并使用父级按钮代码中,但它不起作用。

你不能。或者不应该。

你不能这样做,因为iframe是一个窗口上下文,理论上它不应该知道它的父对象(即使在实践中它知道)。

  1. 如果在独立窗口中打开iframe的内容,会发生什么情况?如果这是一个简单的操作,比如:"我不需要这个工作流",那么不要使用iframe,你不需要它。

  2. parent和iframe在同一个域中吗?如果答案是否定的,你就不能这么做。

如果你在任何情况下都需要它,并且它们都在同一个域中,并且如果不使用iframe就无法实现它。。。

  • 在父窗口window.showDialog = function (){}中编写对话框的代码
  • top.showDialog()parent.showDialog()调用此代码

top在大多数浏览器中与大多数父窗口相关。。。如果你的父母也出现在iframe中,top将被破坏。。。最好使用parent。。。