我正在看这个回答jQuery how to close dialog from iframe within dialog?。 我有相同的情况,即以这种方式调用jqueryui对话框的页面:
var message = '<div id="pickDialog"><iframe frameborder="0" src="/Anagrafica/Pick?where=TipoAnagrafica=\'P\'"></iframe></div>'
$(message).dialog({
modal: true,
width: 'auto',
title: 'Seleziona'
});
在Anagrafica页面中,当用户按下按钮时,我运行另一个jqueryui对话框,如下所示
var message = '<div>Hai selezionato ' + value + '.</div><div>Confermi?</div>'
$('<div></div>').html(message).dialog({
modal: true,
title: 'Conferma',
buttons: {
"Si": function () {
window.parent.setCodice(value);
$(this).dialog("close");
window.parent.closePick();
},
"No": function () {
$(this).dialog("close");
}
}
});
主页面中的函数closePick是:
function closePick() {
$('#pickDialog').dialog('close');
return false;
}
此代码有效......但仅限第一次!当我打开iframe id =&#34; pickDialog&#34;第二次,当我按下Si按钮时,对话框不会关闭。 函数closePick被执行,我在Javascript控制台中没有错误。 会是什么呢?
答案 0 :(得分:0)
我已经在html页面中解决了这个问题
<div id="pickDialog" style="display:none"></div>
然后jquery函数变为
function pickDialog() {
var message = "<iframe width="100%" height="100%" frameborder="0" src="/Anagrafica/Pick?where=TipoAnagrafica=\'P\'"></iframe>"
$("#pickDialog").dialog({
modal: true,
width: dWidth,
height: dHeight,
title: 'Seleziona'
}).html(message);
}
其他代码不变。我不知道为什么,但这解决了这个问题。