zoukankan      html  css  js  c++  java
  • Chrome showModalDialog undefined is not a function 的替代方案

    function myShowModalDialog(url, width, height, fn) {
        if (navigator.userAgent.indexOf("Chrome") > 0) {
            window.returnCallBackValue354865588 = fn;
            var paramsChrome = 'height=' + height + ', width=' + width + ', top=' + (((window.screen.height - height) / 2) - 50) +
                ',left=' + ((window.screen.width - width) / 2) + ',toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no';
            window.open(url, "newwindow", paramsChrome);
        }
        else {
            var params = 'dialogWidth:' + width + 'px;dialogHeight:' + height + 'px;status:no;dialogLeft:'
                        + ((window.screen.width - width) / 2) + 'px;dialogTop:' + (((window.screen.height - height) / 2) - 50) + 'px;';
            var tempReturnValue = window.showModalDialog(url, "", params);
            fn.call(window, tempReturnValue);
        }
    }
    function myReturnValue(value) {
        if (navigator.userAgent.indexOf("Chrome") > 0) {
            window.opener.returnCallBackValue354865588.call(window.opener, value);
        }
        else {
            window.returnValue = value;
        }
    }
    

    以上代码保存到公用JS文件中 页面引用

    父窗体调用方法

    myShowModalDialog("Channel-Operation-" + $(this).attr("data-id"), 500, 300, function (v) {
        if (v == 1) {
            loadList();
        }
    });
    

    最后一个参数为回调函数

    子窗体传值方法

    myReturnValue(1);
    window.close();
    

      

    不完美之处是 Chrome 中不是模态窗体

    有时间换用div+iframe

    原文地址 http://www.cnblogs.com/fei85454645/p/4039910.html

  • 相关阅读:
    【转】谈谈 JVM 内部锁升级过程
    TCP 和 UDP 协议简介
    《分布式系统原理介绍》读书笔记
    Paxos 协议简单介绍
    Lease 机制和 Quorum 机制
    HBase 学习二(最佳实践).
    HBase 学习一(基础入门).
    Spring 事务介绍
    《MySQL技术内幕:InnoDB存储引擎》读书笔记.
    数据库事务简介.
  • 原文地址:https://www.cnblogs.com/fei85454645/p/4039910.html
Copyright © 2011-2022 走看看