当前位置: 首页 > news >正文

在同一个页面父窗口打开子窗口,动态无刷新提交,超炫基于jquery ajax提交,兼容IE7+,火狐.....

在同一个页面父窗口打开子窗口,动态无刷新提交,超炫基于jquery ajax提交,兼容IE7+,火狐..

基于父窗口打开子窗口,效果超炫,用jquery AJAX 动态无刷新提交...

下面先来分析代码:父窗体页面代码


     
< div >
< a href ="javascript:void(0);" url ='openerWeb.aspx' id ="aparent" > 编辑 </ a >
< div id ="blockOpTip" style ="display:none;" class ="tipbox" >< img src ="http://images.cnblogs.com/busy.gif" alt ="wait" /> < span id ="blockOpTipAction" > 正在保存,请稍等... </ span ></ div >
< div id ="wrap" >
< div >< img src ="/styles/1/busy.gif" id ="wrapImg" />< span id ="wrapTitle" ></ span ></ div >
< div id ="wrapBtn" >< input class ="ok" type ="button" />< input class ="cancel" type ="button" /></ div >
< iframe id ="blockFrame" style ="display:none" name ="blockFrame" width ="100%" height ="100%" frameborder ="0" scrolling ="auto" ></ iframe >
</ div >
</ div >

 

子窗体代码:


     
< div class ="ManagerForm" >
< form id ="form1" runat ="server" >
子窗口.........dddd
</ form >
< div id ="blockOpTip" style ="display:none;" class ="tipbox" >< img src ="/images/busy.gif" alt ="wait" /> < span id ="blockOpTipAction" > 正在保存,请稍等... </ span ></ div >
< div id ="wrap" >
< div >< img src ="/styles/1/busy.gif" id ="wrapImg" />< span id ="wrapTitle" ></ span ></ div >
< div id ="wrapBtn" >< input class ="ok" type ="button" />< input class ="cancel" type ="button" /></ div >
< iframe id ="blockFrame" style ="display:none" name ="blockFrame" width ="100%" height ="100%" frameborder ="0" scrolling ="auto" ></ iframe >
</ div >
</ div >

 

父窗口的js代码:

<script type="text/javascript">
        function saveDetail() {
            alert("ok");
            $.ajaxCommon("正在保存,请耐心等待....", "openerWeb.aspx?act=save", null, function (p) {
                if (p.succ) {  parent.unBlock(); }
            });

            return false;
        }
    </script>

子页面和父页面都要引用jextending.js,这个文件有两个主要的方面,分别如下:

function showEdit(src, title, width, height, saveCallBack,bottom,showInTop) {
    submitFunc=null;
    loadFunc = null;
    var b=bottom==undefined?true:bottom;//是否需要底部的保存关闭按钮
    if (parent.p == true && showInTop!=false&&showInTop==undefined) {
        //如果存在父窗口,则开始父窗口的弹出框       
        parent.showEdit(src, title, width, height, saveCallBack, b,true);
        return;
    }
    submitFunc = (saveCallBack == undefined || saveCallBack == null) ? (function () { }) : saveCallBack;   
    var isObject=(typeof(src)=="object");
    var obj=src;
    if (!isObject) {
        var href = src;
        if (href.indexOf('?') > 0) {
            href += "&mm=" + Math.random();
        }
        else {
            href += "?mm=" + Math.random();
        }
        obj=$("#blockFrame").attr("src",href);
    }
    $.load("正在加载....");
    loadFunc=function(){
        ub(true);       
        $.blockUI({ message:obj , theme: true, title: title,fadeOut:false,needBottom:b,
            themedCSS: {  width: width, height: height },
            onBlock: function () {
                if (typeof (submitFunc) == "function") {                   
                    $("#blockDiv").find(".bottom input[name='save']").bind("click",function () { submitFunc(); }); //执行保存按钮
                }
            }
        });
      };
      setTimeout(loadFunc,2000);
}。这是一个打开子页面的函数,它包括延时加载效果设置,及打开窗口的相关设置. 第二函数是ajaxCommon提交处理函数。

$.ajaxCommon = function (title, url, data, callback, isOnlyCallBack) {
        $.load(title); //设置载入状态
        $.ajax({
            url: url + (url.indexOf("?") == -1 ? "?" : "&") + "s=" + Math.random(),
            type: 'POST',
            dataType: 'json',
            data: data,
            error: function (a) {
                $.error(a);
            },
            success: function (json) {
                if (json.succ == 1 || json.succ) {
                    setTimeout("$.correct('" + json.message + "')", 500);
                    timeOutFunc = setTimeout("ub()", 1500);
                    if (typeof (callback) == "function") {                       
                        window.setTimeout(callback,1700,json);
                    }
                }
                else {
                    var info = json.Info || json.message;
                    if (isOnlyCallBack!=undefined&&isOnlyCallBack==true) { callback(json); return; }
                    $.error(info);
                    callback(json);
                }
                return;
            }
        });
    };这是一个AJAX提交处理的函数,包括载入状态,处理结果的返回及子窗口关闭等相关的.

下面是相关效果的截图,如下:

点击“编辑”按钮,出现如下效果..

完全载入后...如下效果:

可以随意拖动....:

点击“保存”按钮,效果如下:

以上就是全部的相关介绍,还包含其他的一些JS,css样式再这里就不作介绍了,有兴趣的朋友可以下载源代码看看..

源码下载地址:http://files.cnblogs.com/howzanh/JSWebDemo.zip

posted on 2011-01-02 23:42 一路->向前 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/howzanh/archive/2011/01/02/1914749.html

相关文章:

  • PHP统计目录下的文件总数及代码行数(去除注释及空行)
  • nyoj 523 双向广搜
  • JS调用后台方法大全
  • 即时通信3
  • frame-relay实验
  • eclipse启动不了报错java was started but returned exit code=13
  • GDAL编译Windows平台下64位的方式
  • java调用webservice
  • 使用JSR234实现对图片的缩放
  • 《大型分布式网站架构设计与实践》
  • 迷路
  • SQL Server 高可用使用环境
  • Java基础之异常
  • 心情流水账
  • 人生健康三标准
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • ES6系列(二)变量的解构赋值
  • gops —— Go 程序诊断分析工具
  • HTTP那些事
  • java8 Stream Pipelines 浅析
  • javascript 总结(常用工具类的封装)
  • JAVA多线程机制解析-volatilesynchronized
  • Java基本数据类型之Number
  • Sass 快速入门教程
  • vue.js框架原理浅析
  • webpack+react项目初体验——记录我的webpack环境配置
  • 从0到1:PostCSS 插件开发最佳实践
  • 简单易用的leetcode开发测试工具(npm)
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 通过npm或yarn自动生成vue组件
  • 优化 Vue 项目编译文件大小
  • #android不同版本废弃api,新api。
  • (13)Hive调优——动态分区导致的小文件问题
  • (3)nginx 配置(nginx.conf)
  • (9)目标检测_SSD的原理
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (小白学Java)Java简介和基本配置
  • (一)SpringBoot3---尚硅谷总结
  • (转)jdk与jre的区别
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net web项目 调用webService
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .net操作Excel出错解决
  • .Net接口调试与案例
  • .NET连接数据库方式
  • .NET中的十进制浮点类型,徐汇区网站设计
  • .sh
  • .考试倒计时43天!来提分啦!
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @Data注解的作用