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

Javascript IE9,showModalDialog()和window.close()-兼容视图的怪癖,javascript,internet-explorer-9,cross-browser,Javascript,Internet Explorer 9,Cross Browser,我有一个ASP.NET3.5网站项目。其中有一页(a);在此页面中有一个加载另一页面(B)的。从B,通过此功能启动模式对话框: function ShowDialogLookup(anchorDiv) { // anchorDiv is div element with some data properties var result = window.showModalDialog($(anchorDiv).data('popup-url'), window, "dialogHe

我有一个ASP.NET3.5网站项目。其中有一页(a);在此页面中有一个加载另一页面(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对话框,但我只负责让它在IE9中工作。这么说吧

在此弹出窗口中,显示的页面包含“确定”和“取消”按钮。“取消”按钮仅为:

<button class="lookup-cancel">Cancel</button>
在IE9中,非兼容性视图模式,单击按钮会导致两种情况发生:

  • 模态对话框关闭,但
  • 使用与模式对话框相同的URL启动第二个全帧窗口
  • 完整窗口中的“取消”按钮现在可以正常工作,当它不再包含在模式对话框窗口中时,但是任何提示IE启动它的行为都是意外行为

    在IE9中,在启用兼容性视图模式的情况下,,单击该按钮完全可以执行它应该执行的操作

    • 我是否做了一些jQuery或IE-wise在IE9中中断的事情,而这些事情在ie6、7或8中都可以工作

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

    将按钮更改为:

    <button type="button" class="lookup-cancel">Cancel</button>
    
    取消
    
    解决了这个问题

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