[英]IE9, showModalDialog() and window.close() - quirks with compatibility view
我有一个ASP.NET 3.5网站项目。 在其中存在页面(A); 在此页面中有一个<iframe>
加载另一个页面(B)。 从B开始,通过此函数启动模态对话框:
function ShowDialogLookup(anchorDiv) {
// anchorDiv is div element with some data properties
var result = window.showModalDialog($(anchorDiv).data('popup-url'), window, "dialogHeight: 300px; dialogWidth: 500px");
return false;
}
免责声明:我希望能够重写一次,以便在模态模式下使用jQuery Dialog,但我只负责让它在IE9中运行。 所以说...
在此弹出窗口中,显示的页面包含“确定”和“取消”按钮。 “取消”按钮就是:
<button class="lookup-cancel">Cancel</button>
它被分配一个事件来关闭模态对话框:
$('.lookup-cancel').button().click(function() {
window.close();
});
在IE9中, 非兼容性视图模式 ,单击该按钮会导致两件事情发生:
完整窗口中的“取消”按钮现在可以正常工作,当它不再包含在模态对话框窗口中时,但是任何提示IE启动它的行为都是意外行为。
在IE9中, 启用兼容性视图模式后 ,单击按钮可以完全按照预期进行操作。
我很幸运。 IE9显然关心<button>
的type
。 在这种情况下,IE9将其视为提交按钮。 “提交”的行为导致在模式对话框之外加载单独的页面。
将按钮更改为:
<button type="button" class="lookup-cancel">Cancel</button>
解决了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.