`

web开发中父子页面如何联动操作

阅读更多
联动操作主要分为两个方面:1)父页面控制子页面。2)子页面操作父页面
最典型的应用就是:当我登录一个系统后,打开了多个子页面,在我退出系统时,子页面自动关闭而不需要我手动一个一个的关闭子页面

对于这种需求在大型的web系统中非常常见。下面我们就来给出一个web调度台的实际应用

在web调度台中,有一个设置按钮,当用户点击这个按钮后,会用新的标签页打开一个设置的页面。当用户点击退出按钮时,子页面自动关闭。
那么这种效果是如何实现的呢?

我们熟悉HTML的都知道,打开新的窗口有多种方式,其中有一个是window.open()方法,通过api我们知道这个方法接收三个参数并且有一个返回值
oNewWindow = window.open( [sURL] [, sName] [, sFeatures] [, bReplace])
那么我们就可以通过返回值的对象来判断子窗口的状态和属性了

在父页面的js中写上以下代码:
//子窗口
var windowArray = new Array();
/**
 * 设置功能
 * 响应设置按钮事件
 */
$(document).ready(function(){

    $(".setting").click(function(){

        //设置窗口只能打开一个
        if(windowArray.length > 0)
        {
            closeAllWindows();
        }
        var win = window.open(path + '/set.jsp?scheduleNum=' + scheduleNumber, 'setting_window', '');
        windowArray[windowArray.length] = win;

    });
});


然后在退出按钮增加事件:
$(document).ready(function() {

    //退出、关闭标示; 1退出 2关闭
    var exit_close = "2";

    //退出时提示确认信息
    $("#logout_btn").click(function(e) {
        exit_close = "1";
        logoutSure(e);
    });

    //浏览器刷新前,弹出提示确认信息
    window.onbeforeunload = function(e){
        console.log("beforeun");
        if(exit_close == "2")
        {
            logoutSure(e);
        }
    };

    //浏览器关闭前,弹出提示确认信息
    window.onunload = function(e){
        console.log("un");
        if(exit_close == "2")
        {
           $("#login").submit();
        }
    };
});

function logoutSure(e){
    if (confirm("请确认是否退出?")) {
        closeAllWindows();
        $("#login").submit();
        return true;
    }
    else
    {
        e.returnValue = false;
        return false;
    }
}

  /**
  * 退出时关闭子窗口
  */
  function closeAllWindows() {
    for (var i = windowArray.length - 1; i >= 0; i--) {
        if (windowArray.length <= 0)
            break;

        var windowRef = windowArray[i];

        if ((windowRef != null) && (windowRef.closed == false)) {
            windowRef.close();
        }
        windowArray.pop();
    }
}

以上就是利用父页面操控子页面的案例。

那么大家一定会想:如果用子页面控制父页面呢? 接下来就讲讲这个

子页面的window对象有个属性是window.opener这个操作是:设置或获取创建当前窗口的窗口的引用,也就是子页面可以通过这个获取父页面对象的引用了,
接下来我们就展现一下web调度台的实际应用。

在设置页面我们会管理组,而增加、修改、删除组的信息时,都需要主页面刷新左边的组信息。这就需要子页面在进行一些动作时要能通话父页面
在父页面加入以下代码:
/**
 * 在设置页面增加组时,更新组名
 */
function addGroupName(name)
{
    console.log("add group name is : " + name);
    var lis = new Array();
    lis = $("li");
    for(var i = 1; i < lis.length; i++)
    {
        if($(lis[i]).find("a").attr("class").indexOf("mod") == -1)
        {
            $(lis[i]).find("a")[0].innerHTML = name;
            $($(lis[i]).find("a")[0]).addClass("mod");
            break;
        }
    }
}


在子页面加入以下代码:
    /**
     * 校验组名是否重复
     */
    function checkAddGroup()
    {
        $("#addGroupBtn").click(function(){
            var newName = $("input[name='groupname']");
            var groupName = newName.val();
            for(var i = 0; i < groupList.length; i++)
            {
                if(groupName == groupList[i])
                {
                    $("#errotMsg").text("组名重复");
                    $(newName).addClass('error_input');
                    return false;
                }
            }

            //让主页面组名更新
            top.window.opener.addGroupName(groupName);
            $(".myform_add").submit();

        });
分享到:
评论

相关推荐

    java三级联动

    在IT行业中,"三级联动"通常指的是在一个交互系统中,如网页或应用程序,用户可以选择一个主类别,接着选择一个次类别,最后再选择一个更具体的子类别,这三者之间存在依赖关系。例如,在中国的行政区域划分中,我们...

    js省市联动结合数据库-最新修改版

    在Web开发中,省市区联动是一种常见的功能,它允许用户在选择一个省份后,自动加载并显示该省份下的城市,再选择城市后,展示对应城市的区县。这种功能可以提升用户体验,减少不必要的网络请求。"js省市联动结合...

    js-动态添加行、多级联动、数据库SQL

    这些技术在实际开发中经常结合使用,比如动态添加行时可能需要用到多级联动,子窗口中进行数据验证后将结果返回给父窗口。熟练掌握这些知识点,将使你在JavaScript编程中更加游刃有余,能够构建出功能丰富、健壮的...

    ASP四级联动下拉框代码

    ASP(Active Server Pages)是一种由微软开发的服务器端脚本环境,用于生成动态网页或Web应用程序。在ASP中,四级联动下拉框是一种常见的交互设计,常见于网站的地区选择、分类导航等场景,它允许用户通过四个下拉...

    SSM+Maven实现无刷新三级联动

    SSM+Maven实现无刷新三级联动是一种常见的前端与后端交互技术,广泛应用于Web开发中,例如在选择地址、分类等场景。SSM是指Spring、SpringMVC和MyBatis三大框架的组合,Maven则是一个项目管理工具。本项目通过这四个...

    codeigniter框架做的三级联动菜单

    8. **前端框架**:虽然CodeIgniter本身并不依赖特定的前端框架,但为了使页面更加美观和响应式,可以结合Bootstrap、Element UI等前端库进行开发。 通过以上步骤,我们可以构建一个功能完备的三级联动菜单,同时...

    jQuery多级联动下拉插件chained用法示例

    在现代Web开发中,多级联动下拉菜单是一种常见且实用的功能,它能够根据用户的选项动态地更新其他下拉列表的内容。jQuery作为一款流行的JavaScript库,其多级联动下拉插件chained大大简化了这一功能的实现。本文将...

    ZTree.js.rar

    在现代Web开发中,树形结构数据的展示和操作是一项常见的需求,例如目录层级、组织架构或者权限管理等。ZTree.js就是这样一款专门用于Web端实现树形结构的JavaScript库,它提供了丰富的功能,包括节点的增删改查、复...

    ASP无限级分类代码 提供无限级分类的完整演示,带数据库

    ASP(Active Server Pages)是一种微软开发的服务器端脚本语言,常用于构建...如果你是初学者,这将是一个很好的实践机会,通过阅读和调试代码,你将深入理解递归算法在Web开发中的应用以及如何与数据库进行有效交互。

    CheckBox 选中效果 选中子的父自动选中,选中父的子全部选中

    在Web开发过程中,为了提高用户体验和简化操作流程,开发者常常需要对用户界面进行一些优化处理。其中,CheckBox控件因其在数据选择和表单提交中的广泛应用而成为优化的重点之一。当用户在一个层级结构中操作多个...

    dwr+struts 三级菜单

    总结而言,这个项目展示了`DWR`和`Struts`在Web应用中的强大组合,它们共同提供了一种高效、灵活的方式来实现动态的、交互式的三级联动菜单。这种技术在许多需要实时更新数据的Web应用中都有广泛的应用,如电子商务...

    中国省市区三级联的JSON格式

    在Web开发中,为了实现省市区三级联动的选择效果,通常会使用特定的JSON格式来存储这种地理信息。这里提到的"中国省市区三级联的JSON格式"就是这样一个例子,它被设计用于创建下拉列表,方便用户在网页上选择他们的...

    AJAX的一些常用控件

    在实际开发中,还可以结合其他AJAX控件如UpdateProgress(显示异步操作进度)、Timer(定时触发异步请求)等,构建更复杂的应用场景。 总结起来,AJAX Control Toolkit提供了丰富的UI组件,帮助开发者利用AJAX技术...

    树结构zTree

    zTree是一款基于JavaScript的开源插件,主要用于在Web页面中展示树形结构数据。它在前端开发中被广泛应用,尤其是在需要处理层级关系的数据展示时,例如目录结构、组织架构、权限管理等场景。zTree以其丰富的配置...

    Gridview用法大总结

    另外,下拉框(DropDownList)和复选框(CheckBox)等控件可以在模板字段中插入,实现联动筛选或批量操作。 7. **自定义样式和模板**: GridView的外观可以通过CSS进行美化,而其列结构可以通过模板字段定制。比如...

    dwz-user-guide.pdf

    - **主从结构**:支持父子数据之间的联动操作。 - **Ajax表单**:实现表单数据的异步提交。 - **表单查询**:提供高级表单查询功能。 - **普通Ajax表单提交**:支持基础的表单提交操作。 - **文件上传表单提交**:...

    js写的tree

    在Web开发中,JavaScript实现的Tree组件能够帮助用户以交互式的方式查看和操作这种结构。这个压缩包文件“js写的tree”很可能包含了一个自定义的、支持多选功能的JavaScript Tree库或者示例。 首先,我们来理解一下...

    ztree实现权限树实例

    ZTree是一款基于JavaScript的富交互树形组件,广泛应用于Web前端开发中,尤其适用于处理复杂的树状数据结构,如权限分配、组织架构展示等。本实例将详细讲解如何利用ZTree实现权限树,实现父子菜单级联以及选中子...

    (全)传智播客PHP就业班视频完整课程

    通配符选择器 父子选择器 8-13 4.选择器使用细节 块元素?托心谠? 盒子模型 盒子模型经典应用① 8-13 5.盒子模型经典应用② 作业布置 8-15 1.div+css作业评讲① 8-15 2.div+css作业评讲② 8-15 3.div+css作业评讲③...

Global site tag (gtag.js) - Google Analytics