无法从外部功能关闭Simplemodal

时间:2011-05-14 00:34:06

标签: javascript modal-dialog simplemodal

所以我创建了一个带有iframe的simplemodal框。在iframe中我有一个文本框,一旦提交就会调用一个函数。然后该功能关闭并执行自己的命令。我想要做的是在人们提交他们的文本以便关闭simplemodal框之后。我还没有看到一个允许我为模态设置id的属性,所以我可以在函数外部引用它。这是我的代码:

模态:

$.modal('<iframe src="chrome-extension://kdcfmjjkjcgaklpmpnhcmieepkiddfen/options.min.html" height="120" width="300" style="border:0">', {
                close: true,
                closeHTML:"",
                containerCss:{
                    backgroundColor:"#000",
                    borderColor:"#000",
                    height:100,
                    padding:0,
                    width:300,
                    height:125
                },
                overlayClose:true,
                opacity:50,
                overlayCss: {backgroundColor:"#000"}
            });

options.min.html:

passMessage:

function passMessage() {
        var value = document.getElementById('speechInput').value;
        var event = "commands"
        $.modal.close();
        chrome.extension.sendRequest({command:value}, function(response) {});
    }

你可以看到模态使用options.min.html在模态中创建一个语音输入框。一旦用户停止说话,则调用另一个函数,其中从该框中获取值。但是$ .modal.close();函数实际上并没有关闭模态,而只是挂起我的程序,它无处可去。我需要知道如何引用在别处创建的模态。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

如果要从iframe中关闭模式,请使用以下JavaScript:

parent.$.modal.close();

对于ID,SimpleModal会自动将它们添加到对话框元素:simplemodal-overlaysimplemodal-containersimplemodal-data