首页 前端知识 JQ: 有点历史框架Grails;1、弹出子窗口<frame>,2、弹出子窗口parent.layer.open;操作实现,关闭等实际开发中遇到问题

JQ: 有点历史框架Grails;1、弹出子窗口<frame>,2、弹出子窗口parent.layer.open;操作实现,关闭等实际开发中遇到问题

2024-05-13 11:05:29 前端知识 前端哥 870 322 我要收藏

一:

第一个问题:由于对于前端js知识不是很熟悉,在开始写弹窗时不知道使用那种方法,后面找到实现弹窗方法:

1、需要引入<g:javascript src="jquery/jquery.js"/>,但不能再页面重复引入<g:javascript src="jquery/jquery.min.js"/>,否则会报错(实现不了)

2、在主页面预留位置给子窗口,例如定义:

<div>
.......
<div id ='win'></div>
</div>

3、在按钮(自定义)处点击后在函数处实现:

   function importData(){
            
            jQuery('#win').window({
                title : '批量导入',
                width:800,
                height:440,
                modal:true,     //true表示弹窗出现后主页面无法操作
                minimizable :false,
                maximizable:false,
                collapsible:false,
                content:"<iframe src='${request.contextPath}/xxx/xxx'  height='100%' width='100%' frameborder='0px' style='border: solid 0px;' ></iframe>",
                onClose:function(){
                      $('#lt').datagrid('reload');
                }
            });
        }

注意:代码中的src表示可跳转到子窗口内容的路径(本人是利用后台action进行跳转)

4、弹窗出现后如何更换标题,子窗口内容,高度,宽度等等:

      parent.$('#win').window("setTitle", "修改用户");//更换标题
                parent.$("#win").window('resize', {width:770, height:550});//更换宽高
                parent.$("#win").window('center');//更换出现位置

子窗口内容可以在子窗口页面上直接跳转

5、如何关闭

//关闭窗口(#win是主页面的div)
parent.jQuery('#win').window('close')
//主页面重新加载
            parent.location.reload();

额外知识:

函数表示加载页面随即加载该函数,可以在里面做初始化定时器等等功能。

<script>

jQuery(document).ready(function (){
            time();
            
        })

     function time(){
            if(${flash.message!=null}){
                timeOutValue = timeOutValue - 1;
                if (timeOutValue <= 0) {
                    timeOutValue = maxTime;
                    jQuery("#msg").hide();
                }
                setTimeout("time()", 1000);   //每隔一秒监听一次
            }
        }

</script>

操作进行转圈:

<style>
.toast {
        display: none;
        position: fixed;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 9rem;
        height: 9rem;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        background-color: rgba(0,0,0,0.2);
        border-radius: 1rem;
        color: #f0f0f0;
        font-size: 2.5rem;
    }
</style>
<script>
  function onclick(){
//展示转圈
            var toast = document.getElementById("toast");
            toast.style.display="flex";
}
function ok(){
//关闭转圈展示
var toast = document.getElementById("toast");
            toast.style.display="none";
}
</script>
<html>
......
   <div class="toast" id="toast">
        <span ><img src="${request.contextPath}\css\colorbox\images\loading.gif"></span>
        <span>正在处理数据,请稍候...</span>
    </div>
</html>

附件:动态转圈的gif图

二:

需要主页面导入弹窗的组件:

   

 <!--parent.layer.open弹窗的组件-->
    <g:javascript src="layui/layui-2.2.5/layui.all.js"/>

在子页面中写法(本人是在弹窗中再次弹窗,两个弹窗的父页面都指向主页面)页面写法(注意:type=2表示是打卡<iframe>窗口,其它类型窗口请自行百度了解;参考:layer.open(常用)_迷迭绿的博客-CSDN博客_layer.open)

//本窗口是在已弹出窗口基础上点击按钮再次弹窗(还是在父类页面基础上弹窗)
   parent.layer.open({
                id: '666'
                type: 2,
                title: '',
                shadeClose: false,
                shade: 0.8,
                area: ['530px', '370px'],
                content: '${request.contextPath}/xxx'
            });

更换弹窗标题:

 var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
 parent.layer.title('批量导入', index)  //再改变当前层的标题

关闭弹窗窗口:

       var index = parent.layer.getFrameIndex(window.name);
        parent.layer.close(index);

主页面重新加载

 parent.location.reload();

转载请注明出处或者链接地址:https://www.qianduange.cn//article/8549.html
标签
评论
发布的文章

1、SpringBoot简介及返回json

2024-05-25 09:05:17

mysql 的jsonTable使用

2024-05-25 09:05:41

MySQL中的JSON

2024-05-25 09:05:32

JSON简介(1)

2024-05-25 09:05:22

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!