繁体   English   中英

IE9,showModalDialog()和window.close() - 具有兼容性视图的怪癖

[英]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中, 非兼容性视图模式 ,单击该按钮会导致两件事情发生:

  1. 模态对话框关闭,但是
  2. 使用与模式对话框相同的URL启动第二个全帧窗口。

完整窗口中的“取消”按钮现在可以正常工作,当它不再包含在模态对话框窗口中时,但是任何提示IE启动它的行为都是意外行为。

在IE9中, 启用兼容性视图模式后 ,单击按钮可以完全按照预期进行操作。

  • 我是否已经在IE9中做了一些可以在IE 6,7或8中运行的IE9?

我很幸运。 IE9显然关心<button>type 在这种情况下,IE9将其视为提交按钮。 “提交”的行为导致在模式对话框之外加载单独的页面。

将按钮更改为:

<button type="button" class="lookup-cancel">Cancel</button>

解决了这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM