• 20160513--js 弹出窗口带有iframe控件 备忘


     需要引用JQuery。

    /*!
     * 主  题:《页面弹出窗口》
     * 说  明:用于页面弹出的窗口。
     * 功能描述:
     * 1、生成弹出窗口,窗口内包括iframe控件;
     * 2、窗口弹出时,生成背景遮罩;
     */
     function OpenPageBox() {
        new PageBox("标题栏", "test.htm?“, 1000, 435).Open();
    }
    
    //title:窗口标题
    //url:链接地址
    //窗口宽度
    //height:窗口高度
    //new PageBox(title, url, width, height)
    function PageBox(title, url, width, height) {
        this.Init(title, url, width, height);
    }
    //初始化参数
    PageBox.prototype.Init = function (title, url, width, height) {
        this.Title = title != null && title != "" ? title : "";
        this.url = url;
        this.Width = width;
        this.Height = height;
        this.WinId = new Date().getTime() + "_" + Math.floor(Math.random() * 1000 + 1);
    }
    //创建窗口,并打开
    PageBox.prototype.Open = function () {
        //判断是否已经存在窗口
        var WinBox = $("#PageBox[winId='" + this.WinId + "']");
        if (WinBox.size() > 0) return;
        PageBox.Close();
        //生成窗口
        this.Mask();
        this.BuildFrame();
        this.BuildIFrame();
    }
    //生成窗体外框,包括标题
    PageBox.prototype.BuildFrame=function()
    {
        //屏幕的宽高
        var hg=document.documentElement.clientHeight;
        var wd = document.documentElement.clientWidth;
    
        $("#body").append("<div id="PageBox" type="PageBox" winId="" + this.WinId + ""></div>");
        var PageBox=$("#PageBox");
        this.WinBox=PageBox;
        //设置窗口的位置
        PageBox.css("top", $(window).scrollTop()+100);
        PageBox.css("left",(wd-this.Width)/2);
        PageBox.css("position", "absolute").css("z-index", "10002");
        PageBox.css("width",this.Width);
        PageBox.css("height", this.Height);
        
        this.BuildTitle();
    }
    //生成标题栏
    PageBox.prototype.BuildTitle = function () {
    
        var box = this.WinBox;
        box.append("<div id="PageBoxTitle"></div>");
        var titbox = $("#PageBoxTitle");
        var tm = "<div id="PageBoxTitleTxt">" + this.Title + "</div>";
        tm += "<div id="PageBoxClose">X</div>";
        titbox.append(tm);
    
        $("#PageBoxClose").click(function () {
            PageBox.Close();
        });
        box.width(this.WinBox.width());
        box.height(this.WinBox.height());
    }
    //生成页面frame区域
    PageBox.prototype.BuildIFrame = function () {
        var box = this.WinBox;
        var width = box.width();
        //标题栏的高度
        var titHg = $("#PageBoxTitle").height();
        var height = this.WinBox.height() - titHg;
    
        var frame = "";
        frame += "<iframe src="" + this.url + "" name="PageBoxIframe" id="PageBoxIframe" ";
        frame += "width="" + width + """;
        frame += "height="" + height + """;
        frame += "marginwidth="0"  marginheight="0" align="top" scrolling="auto"";
        frame += "frameborder="0" >";
        frame += "</iframe>";
        box.append(frame);
    }
    //关闭窗口
    PageBox.Close = function () {
        $("#PageBox").remove();
        $("#screenMask").fadeOut("slow");
    
    }
    //生成遮罩层
    PageBox.prototype.Mask=function(){
        var mask = $("#screenMask");
        mask.remove();
        mask = null
        delete mask;
        var html = "<div id="screenMask"/>";
        $("body").append(html);
        mask = $("#screenMask");
        mask.css("position", "absolute");
        mask.css("z-index", "10000");
        //屏幕的宽高
        var hg = $("body").height();
        var wd = document.documentElement.clientWidth;
        //设置遮罩的宽高
        mask.css("width", wd);
        mask.css("height", hg);
        mask.css("top", 0);
        mask.css("left", 0);
        var alpha = 60;
        mask.css("background-color", "#ECF7FF");
        mask.css("filter", "Alpha(Opacity=" + alpha + ")");
        mask.css("display", "block");
        mask.css("-moz-opacity", alpha / 100);
        mask.css("opacity", alpha / 100);
        mask.fadeIn("slow");
    }

    效果预览:

    image

    其样式可使用外部样式表控制:

    /*窗口标题栏*/
    #PageBoxTitle{
        background:#3366FF;
        height:25px;
        color:#fff;
    }
    /*窗口标题栏字体*/
    #PageBoxTitleTxt{
        float:left;
        width:300px;
    }
    /*窗口样式*/
    #PageBox{
        border: 3px solid #3366FF;
    }
    /*窗口关闭样式*/
    #PageBoxClose{
         width:25px;
         height:25px;
         font-size:25px;
         margin-right:20px;
         float:right;
         text-align:center;
         cursor:default;
    }
  • 相关阅读:
    HTML 防盗链 用src引用网上图片显示 403 Forbidden
    JS C# 正则表达式去除html字符中所有的标签(img em标签除外)
    net core 3.1使用ElasticSearch 全文搜索引擎
    VS2019开启调试,测试图片上传的时候,一点到图片上传,直接导致VS调试崩掉,返回 程序“[14764] iisexpress.exe”已退出,返回值为 -1 (0xffffffff)。 是什么原因导致的?
    NET 5 使用IdentityServer4 4.x
    服务器下配置springboot项目开机自启
    分布式技术文档
    win10系统ffmpeg命令初体验
    大数据Hadoop生态圈介绍
    MySQL之Explain详解
  • 原文地址:https://www.cnblogs.com/Tirisfal/p/5489429.html
Copyright © 2020-2023  润新知