showModelessDialog改造兼容firefox和ie

目前 Firefox 与 Safari 实现了与 IE 非常接近的 showModalDialog 方法,Chrome 中则是将其当做 window.open 方法处理,Opera 中暂时不支持此方法。
对于 showModelessDialog 方法,目前仅 IE 支持。

 

var userAgent = navigator.userAgent.toLowerCase();
var isFireFox=/mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent);
if(isFireFox)
{
    window.showModelessDialog=function (url)
    {
        var windowName=(arguments[1]==null?"":arguments[1].toString());
        var feature=(arguments[2]==null?"":arguments[2].toString());
        var OpenedWindow=window.open(url,windowName,feature);
        window.addEventListener('click',function (){OpenedWindow.focus();},false);
        return OpenedWindow;
    }
}
else
{
    //子窗口中调用父窗口
    //IE中用window.parent.document
    //FF中用window.opener.document
    //下面的代码将 作用于IE '重载' window.showModelessDialog 方法 统一用 window.opener访问父窗口
    var originFn=window.showModelessDialog;
    window.showModelessDialog=function (url)
    {
        var OpenedWindow= originFn(url,arguments[1],arguments[2]);
        OpenedWindow.opener=window;
    }
}
function popW(s)
{
    var OpenedWindow=window.showModelessDialog(s,'','width=400,height=400');

}

 

原文:http://blog.163.com/daoliao@yeah/blog/static/121701658201051710140497/

其它:http://www.w3help.org/zh-cn/causes/BX9036

Tags: showmodelessdialog

上一篇: CSDN密码泄漏用户的反思   下一篇: 查找包含特定文字的代码文件

提交疑问

回顶部