首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从iframe内部关闭mootools对话框

从iframe内部关闭mootools对话框
EN

Stack Overflow用户
提问于 2013-05-06 21:02:27
回答 1查看 496关注 0票数 1

问:如何从iFrame内部关闭mootools对话框?

我有以下代码来打开父级上的对话框:

代码语言:javascript
复制
window.addEvent("domready", function(e){
/* Modal */
$("mootools_dialog").addEvent("click", function(e){
    e.stop();
    var dlgx = document.getElementById("mootools_dialog").offsetLeft-window.getScroll().x-20;
    var dlgy = document.getElementById("mootools_dialog").offsetTop+window.getScroll().y-400;
    dlgx = (dlgx < 20) ? 20 : dlgx;
    dlgy = (dlgy < 20) ? 20 : dlgy;
    var SM = new SimpleModal({"hideHeader":true,"closeButton":false,"hideFooter":true,"offsetLeft":dlgx, "offsetTop":dlgy });
    var form_check = null;

    SM.show({
      "model":"modal",
      "title":"Title, or empty?",
      "contents":"<iframe src='booking.iframe.php' id='booking_iframe' scrolling='no' /></iframe>"
    });
  })
});

它可以从iFrame内部调用函数,比如href='javascript:{parent.book_click();}',但是我找不到关闭mootools窗口的方法。

在iFrame中我需要什么?

我尝试调用父窗口中的函数来关闭窗口,但无法使任何代码工作。

<a href="javascript:{parent.close_dialog();}">Close</a>

parent.SimpleModal.close() -但没有成功。

我有mootools 1.3.2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-07 17:07:41

您似乎正在使用SimpleModal类进行自定义对话框。您应该注意的第一件事是它没有close方法。但是,它有hide方法来完成这项工作。

但是不能在全局SimpleModal类上调用hide方法,应该在实例上调用它(这是您的SM变量)。所以你可以像下面这样修改你的代码:

代码语言:javascript
复制
window.SM = new SimpleModal({"hideHeader":true,"closeButton":false,"hideFooter":true,"offsetLeft":dlgx, "offsetTop":dlgy });
var form_check = null;

SM.show({
  "model":"modal",
  "title":"Title, or empty?",
  "contents":"<iframe src='booking.iframe.php' id='booking_iframe' scrolling='no' /></iframe>"
});

现在您有了当前对话框实例的全局变量SM,现在您可以从<iframe>调用它的方法,而不会出现任何类似这样的问题:

代码语言:javascript
复制
<a onclick="parent.SM.hide()">Close</a>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16399367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档