layer.open({}) 子页面传参并调用父页面的方法
闲话少说先看效果!!!

说明适用场景:在a.jsp页面,点击查看一个文件,layer.open弹出b.jsp页面,在b.jsp页面可以修改文件的名称(其实是去改了数据库),但是关闭弹窗后,要求a.jsp页面不刷新同时文件的名称也要随之而改变
有请eval()函数登场 // eval() 函数会将传入的字符串当做 JavaScript 代码进行执行。
1.a.jsp页面
var lay=layer.open({
type: 2,
title:o.showFileName,
shadeClose: true,
shade: 0.8,
area: ['100%', '100%'],
content: "/afArchiveDetail/operate.do?ArchiveDetailUUID=" + o.archiveDetailUUID+"&YearMonth="+o.yearMonth+"&flag=operate&callbackname=updateShowFileName"
});
注意:content: "/afArchiveDetail/operate.do?ArchiveDetailUUID=" + o.archiveDetailUUID+"&YearMonth="+o.yearMonth+"&callbackname=updateShowFileName"
updateShowFileName是a.jsp的一个方法
//修改文件名 供子页面回调
function updateShowFileName(str) {
var strs=str.split(","); //字符分割 然后这样就可取值了strs[2]
//写你自己的业务逻辑代码
}
2.b.jsp页面
const callbackname = getQueryString("callbackname");//获取回调函数名称
if (callbackname != "") {
//调父页面的方法
var uuid=_this.afArchivedetail.archiveDetailUUID;
var id=_this.afArchivedetail.attributeId;
var showFileName=_this.afArchivedetail.showFileName;
var evalStr = "parent." + callbackname+"('"+uuid+','+id+','+showFileName+"')";//就相当于parent.updateShowFileName(参数1,参数2。。)
eval(evalStr); //去调用父页面a.jsp的方法了
// eval() 函数会将传入的字符串当做 JavaScript 代码进行执行。
}
//获取get参数 url后面的参数
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null) return decodeURI(r[2]);
return null;
},
-------------end---------------------
layer.open({}) 子页面传参并调用父页面的方法的更多相关文章
- MVC 页面传参到另一个页面
写法一: @{ViewData["partData"]="哇哈哈哈哈";} @{Html.RenderPartial("~/Views/Home ...
- vue,一路走来(12)--父与子之间传参
今天想起一直没有记录父组件与子组件的传参问题,这在项目中一直用到. 父向子组件传参 Index.vue父组件中 <component-a :msgfromfa="(positionno ...
- 子页面iframe跨域执行父页面定义的JS方法
问题需求:父页面与子页面iframe跨域嵌套,子页面要触发父页面所定义的js方法.父子页面的数据传递. 下文中会用到一些文件:父页面: parent.html嵌在父页面的子iframe页面:child ...
- Flutter路由跳转父级页面向子页面传参及子页面向父级页面传参
Flutter中页面通过路由跳转传参主要分两种,一种是通过push()跳转时根据设定的参数进行传参,另一种是通过pop()返回时进行传参. 父级页面向子页面push()传参 假设从A页面跳到B页面可能 ...
- vue:子组件通过调用父组件的方法的方式传参
在本案例中,由于子组件通过调用父组件的方法的方式传参,从而实现修改父组件data中的对象,所以需要啊使用$forceUpdate()进行强制刷新 父组件: provide() { return { s ...
- vue子组件传参给父组件
关于父组件传参给子组件,可以看我另一篇文章 教程开始: 我们要实现的效果是:在子组件的Input框输入,父组件中实时更新显示.(也就是把子组件中的数据传给父组件) 一.子组件代码 template部分 ...
- vue-父子组件传参以及无限级评论
vue父子组件的使用 <template> <div> <zi :data="data" /> </div> </templa ...
- 实现 iframe 子页面调用父页面中的js方法
父页面:index.html(使用iframe包含子页面child.html) [xhtml] view plaincopyprint? <html> <head> <s ...
- iframe子页面调用父页面javascript函数的方法
1.iframe子页面调用 父页面js函数 子页面调用父页面函数只需要写上window.parent就可以了.比如调用a()函数,就写成: window.parent.a(); 2.iframe父页面 ...
随机推荐
- win10无法运行Vmware,怎么办
在win10上安装了Vmware12.15都无法运行,怎么办,找了一晚上 1.点击“检查更新”或去官网下载最新版本 Vmware15.5.0,或者百度云下载 链接:https://pan.baidu. ...
- 20191225_Python构造函数知识以及相关注意事项
Python构造函数格式为__init__() 注:下划线为两个而不是一个 可以有无参构造 instance: class city: def printout(self,first,second): ...
- 【13】堆排序 最小K个数
题目 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 收获 优先队列实现 (n1,n2)->n2-n1是 ...
- MYSQL导入CSV格式文件数据执行提示错误(ERROR 1290): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement.
MYSQL导入CSV格式文件数据执行提示错误(ERROR 1290): The MySQL server is running with the --secure-file-priv option s ...
- css: transform导致文字显示模糊
css: transform导致文字显示模糊 有人认为模糊的原因是:"transform时div的宽度或者高度并不是偶数,偏移 50% 之后,像素点不是整数,和显示像素没有对上". ...
- bugku 管理员系统
这一个是伪造ip X-FORWARDED-FOR:127.0.0.1 用到了XFF头 首先打开网站会发现一个登录界面 然后用开发者工具看一下 后台会发现一串用base64加密的密文 用base64解密 ...
- 【StarUML】用例图
用例图是在项目初期确认需求的时候,需要明确各个参与者之间的关系以及对应的功能,它可视化地展示了整个系统的功能以及功能之间.功能与参与者之间的关系. 1.元素 1.1 角色(actor) 角色不一定是人 ...
- 寒假安卓app开发学习记录(2)
今天属实是头疼的一天.开始的时候是简单了解了一下安卓的系统架构,了解到大概分为四个部分. 然后看了两节创建安卓项目的课程,准备去实践一下的时候突然发现我的eclipse里竟然没有Android选项.查 ...
- MindManager安装、激活
MindManager安装 MindManager激活
- php和redis怎么实现消息队列
把瞬间服务器的请求处理换成异步处理,缓解服务器的压力,实现数据顺序排列获取.本文主要和大家分享php和redis如何实现消息队列,希望能帮助到大家. redis实现消息队列步骤如下: 1).redis ...