layer.open属性详解及layer.open弹出框使用post方法举例

 更新时间:2023年12月07日 09:12:20   作者:yangyang_VV  
这篇文章主要给大家介绍了关于layer.open属性详解及layer.open弹出框使用post方法的相关资料,最近接触到layer弹窗,感觉弹窗功能异常强大,真的很方便,所以记录下来,需要的朋友可以参考下

一、常用属性详解:

layer.open({
    // 基本层类型:0(信息框,默认)1(页面层)2(iframe层,也就是解析content)3(加载层)4(tips层)
    type: 1,
    title: "标题",
    // 当type: 2时就是url
    content: "内容/url",
    // 如果不想要界面滚动条可以这样写
    //content: ["内容/url",'no']
    // 宽高:如果是100%就是满屏
    area: ['733px', '450px'],
    // 坐标:auto(默认坐标,即垂直水平居中),具体当文档:https://www.layui.com/doc/modules/layer.html#offset
    offset: 'auto',
    // 按钮:按钮1的回调是yes(也可以是btn1),而从按钮2开始,则回调为btn2: function(){},以此类推
    btn: ['按钮1', '按钮2'],
    // 关闭按钮:layer提供了两种风格的关闭按钮,可通过配置1和2来展示,如果不显示,则0
    closeBtn: 1,
    // 遮罩:默认:0.3透明度的黑色背景('#000')
    shade: 0.3,
    // 是否点击遮罩关闭:默认:false
    shadeClose: false,
    // 自动关闭所需毫秒:默认:0不会自动关闭
    time: 0,
    // 最大最小化:默认:false
    maxmin: false,
    // 固定:默认:true
    fixed: true,
    // 是否允许拉伸:默认:true
    resize: true,
    // 层叠顺序:默认:19891014,一般用于解决和其它组件的层叠冲突
    zIndex: 19891014,
    // 层弹出后的成功回调方法:layero前层DOM,index当前层索引
    success: function(layero, index){
    },
    // 第一个按钮事件,也可以叫btn1
    yes: function (index, layero) {
    },
    btn2: function (index, layero) {
        layer.close(index);
    },
    // 右上角关闭按钮触发的回调:默认会自动触发关闭。如果不想关闭,return false即可
    cancel: function(index, layero){
        if(layer.confirm('确定要关闭么')){ //只有当点击confirm框的确定时,该层才会关闭
            layer.close(index);
        }
        return false;
    },
    // 层销毁后触发的回调:无论是确认还是取消,只要层被销毁了,end都会执行,不携带任何参数。
    end: function(){
    },
    // 最大化后触发的回调:携带一个参数,即当前层DOM
    full: function(layero){
    },
    // 最小化后触发的回调:携带一个参数,即当前层DOM
    min: function(layero){
    },
    // 还原后触发的回调:携带一个参数,即当前层DOM
    restore: function(layero){
    },
});

例子:

layer.open({
    type: 1,
    title: "标题",
    content: "内容/url",
    area: ['733px', '450px'],
    offset: 'auto',
    btn: ['按钮1', '按钮2'],
    closeBtn: 1,
    shade: 0.3,
    shadeClose: false,
    time: 0,
    maxmin: false,
    fixed: true,
    resize: true
    zIndex: 19891014,
    success: function(layero, index){
    },
    yes: function (index, layero) {
    },
    btn2: function (index, layero) {
        layer.close(index);
    },
    cancel: function(index, layero){
            layer.close(index);
        }
        return false;
    },
    end: function(){
    },
    full: function(layero){
    },
    min: function(layero){
    },
    restore: function(layero){
    },
});

二:layer.open GET方式说明

如下段代码所示,是最常见的layer.open使用方式。这里有几点需要说明:

  • type 基本层类型,layer提供了5种层类型。可传入的值有:0(信息框,默认)、1(页面层)、2(iframe层)、3(加载层)、4(tips层)。

  • layer.open其底层采用的就是get请求方式,因此使用layer.open的弹出层页面传参只能是拼接在url后面。

  • 对于type=2的弹出框,可以使用图示中的方法调用子页面弹出框的doSubmit() 方法,并获取该方法的返回值。

layer.open({
	type: 2,
	area: ["900px", "520px"],
	title: "子页面-弹出框",
	content: "${basePath}/aaa/bbb/get?id=1",
	btn: ['确定', '关闭'],
	yes: function (index, layero) {
		// 调用子页面(弹出框)的doSubmit方法并获取其返回值
        var iframeWin = layero.find('iframe')[0];
        var data = iframeWin.contentWindow.doSubmit();
	},
	cancel: function (layer_window) {
        // 关闭弹出框页面
		layer.close(layer_window);
	}
});

三、layer.open POST方式介绍

由于layer.open其底层就是get请求方式,因此,如果需要使用post请求的话,必须要引入其他方式,这里采用ajax。

思路:用ajax通过post方式传参请求到页面的html,然后通过layer.open方法展示出来。

$.ajax({
	type: "POST",
	url: "${basePath}/aaa/bbb/post",
	data: {"id":1, "type":2, "code":3},
	success: function(res) {
        var html = res.data;
		layer.open({
			type: 1,
			area: ["900px", "520px"],
			title: "子页面-弹出层",
			content: html,
			btn: ['确定', '关闭'],
			yes: function (index, layero) {
                // 调用子页面(弹出框)的doSubmit方法并获取其返回值
				var context = layero.find('page').context;
				var data = context.defaultView.doSubmit();
			},
			cancel: function (layer_window) {
                // 关闭弹出框页面
				layer.close(layer_window);
			}
		});
	}
});

如上段代码所示,是layer.open post请求页面的方放。这里有几点需要说明:

  • type必须为1,因为这里layer.open的content是直接给出HMTL代码的。

  • 调用子页面方法的方式发生了改变,如上实例。

附:iframe层(type:2) :弹出层直接调用其他地方的页面

	layer.open({
	  type: 2, //Layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层),
	  shade:0.1, //遮罩层透明度
	  area:['850px','500px'], //弹出层宽高
	  title:'材料库',//弹出层标题
	  content: 'xx/xx.jsp' //这里content是一个URL,如果你不想让iframe出现滚动条,你还可以content: ['http://sentsin.com', 'no']
	});

总结 

到此这篇关于layer.open属性详解及layer.open弹出框使用post方法的文章就介绍到这了,更多相关layer.open属性弹出框使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • js前端加密库Crypto-js进行MD5/SHA256/BASE64/AES加解密的方法与示例

    js前端加密库Crypto-js进行MD5/SHA256/BASE64/AES加解密的方法与示例

    js加密解密可以使用crypto-js它可以进行MD5、SHA-1、SHA-256、Base64、AES、DES、等算法和加密,这是一个对称加密的库,可以使用 AES、DES、但没有rsa等非对称加密的方法
    2023-12-12
  • smartcrop.js智能图片裁剪库

    smartcrop.js智能图片裁剪库

    为了测试这个智能识别插件,我试了很多壁纸图片,都能智能裁剪出图片的主体部分,转而尝试了一下chrome和Firefox以及IE,发现IE只有10以上的版本才支持,chrome和Firefox支持,手机浏览器不支持,这到底是啥黑科技??今天我们就来详细看看
    2015-10-10
  • 使用TypeScript V8来改进您的JavaScript代码

    使用TypeScript V8来改进您的JavaScript代码

    TypeScript V8是一个强大的JavaScript类型系统,它可以帮助你发现JavaScript代码中的错误和潜在问题,并在编译时捕获它们,以便您可以解决它们,TypeScript V8为JavaScript提供一系列的类型注释,包括自定义类型和其他高级功能
    2023-08-08
  • JavaScript学习小结(7)之JS RegExp

    JavaScript学习小结(7)之JS RegExp

    在js中,正则表达式是由一个RegExp对象表示的,RegExp 是正则表达式的缩写。RegExp简单的模式可以是一个单独的字符。更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。可以使用一个RegExp()构造函数来创建RegExp对象,也可以使用直接量语法
    2015-11-11
  • Javascript技术技巧大全(五)

    Javascript技术技巧大全(五)

    Javascript技术技巧大全(五)...
    2007-01-01
  • 走进javascript——不起眼的基础,值和分号

    走进javascript——不起眼的基础,值和分号

    本文主要介绍了javascript的基础知识--值和分号,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • JS随机洗牌算法之数组随机排序

    JS随机洗牌算法之数组随机排序

    这篇文章主要介绍了JS随机洗牌算法之给数组随机排序的相关资料,需要的朋友可以参考下
    2016-03-03
  • JS严格模式原理与用法实例分析

    JS严格模式原理与用法实例分析

    这篇文章主要介绍了JS严格模式原理与用法,结合实例形式分析了JS严格模式基本概念、原理、用法及相关操作注意事项,需要的朋友可以参考下
    2020-04-04
  • JS图片预加载 JS实现图片预加载应用

    JS图片预加载 JS实现图片预加载应用

    由于图片加载慢,导致用户体验特别差,本文将介绍一种图片预加载技术,需要了解的朋友可以参考下
    2012-12-12
  • JS 将伪数组转换成数组的实现示例

    JS 将伪数组转换成数组的实现示例

    这篇文章主要介绍了JS 将伪数组转换成数组,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07

最新评论