问:如何从iFrame内部关闭mootools对话框?
我有以下代码来打开父级上的对话框:
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
发布于 2013-05-07 17:07:41
您似乎正在使用SimpleModal类进行自定义对话框。您应该注意的第一件事是它没有close方法。但是,它有hide方法来完成这项工作。
但是不能在全局SimpleModal类上调用hide方法,应该在实例上调用它(这是您的SM变量)。所以你可以像下面这样修改你的代码:
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>调用它的方法,而不会出现任何类似这样的问题:
<a onclick="parent.SM.hide()">Close</a>https://stackoverflow.com/questions/16399367
复制相似问题