javascript 关闭窗口,弹出新窗口并带有确认关闭对话框解决办法
在很多人眼里,北京是一个物欲横流的社会,生活节奏之快,让你一丝都不能停下来,走在路上伴随着人群急速往前涌,或许有些人都不知道要去哪、也不知道自己想要的是什么?在一个浮躁的社会里,多了一些浮躁的人,到处的寻找捷径,脚踏实地已经跑得无影无踪。
公司里项目一个接一个的上线,上线后一个接一个的出现问题,或许是我们该反思的时候了,在时间、质量、成本三者需要平衡的时候,我们总是会在时间和成本上做考虑,上线之前的演示只是一个纸老虎,其实离使用的程度差的很远,我们总会一开始把客户的欲望调得很高,但是种种的问题终究会在上线之后暴露出来,让客户产生一种落差,要想再逆转这种结局需要付出百倍的努力,每个人都是消防队员,哪里需要救火就到哪里去,远看形势一片美好,近看火海一拨比一拨高。
最近又调回公司做一个救火的项目,我主要负责在线报名部分,包括以下几个内容:
1、专业人士门票的索取
2、企业展会的报名
3、后台包括专业人士和企业展会的查询、搜索和导出。
功能上没有什么技术难点,但是必须在3天内上线,回来之后就开始了苦逼的生活,建表、建实体、写接口、数据库操作类、业务操作类,一切在掌控中进行。其中的企业展会包括参会企业信息和参会人员两部分,一个企业可能对应多个参会人员,经过考虑采用了以下布局模式:

点击继续添加参会人员,弹出一个模式窗口,

后台代码:
GCMS.Model.EntAttendPerson entAttendPerModel = new Model.EntAttendPerson();
GCMS.CMS.EntAttendInfo entAttend = new CMS.EntAttendInfo(); entAttendPerModel.Name = this.txtName.Value; if (!string.IsNullOrEmpty(Request.Form["Sex"]))
entAttendPerModel.Sex = int.Parse(Request.Form["Sex"]); entAttendPerModel.Job = this.txtJob.Value;
entAttendPerModel.Telphone = this.txtTelphone.Value;
entAttendPerModel.Mobile = this.txtMobile.Value;
entAttendPerModel.Email = this.txtEmail.Value; if (!string.IsNullOrEmpty(Request.Form["radAccomRequire"]))
entAttendPerModel.AccomRequire = int.Parse(Request.Form["radAccomRequire"]); if (!string.IsNullOrEmpty(Request.Form["txtAccomDateStart"]))
entAttendPerModel.AccomDateStart = DateTime.Parse(this.txtAccomDateStart.Value); if (!string.IsNullOrEmpty(Request.Form["txtAccomDateEnd"]))
entAttendPerModel.AccomDateEnd = DateTime.Parse(this.txtAccomDateEnd.Value);
entAttendPerModel.EntAttendNum = this.hidGuid.Value; int count = 0;
if (string.IsNullOrEmpty(Request.QueryString["id"]))
count = entAttend.AddEntAttendPer(entAttendPerModel);
else
{
entAttendPerModel.Id = int.Parse(Request.QueryString["id"]);
count = entAttend.UpdateEntAttendPer(entAttendPerModel);
}
this.Page.ClientScript.RegisterStartupScript(this.GetType(), String.Empty, "addEntAttendPerTip(" + count + ");", true);
前台js:
<head runat="server">
<title>中国智慧城市大会_在线报名</title>
<base target="_self" />
<script type="text/javascript">
window.onload = function a() {
//取得传入参数
var argu = window.dialogArguments;
if (argu) {
if (argu.guid != "") {
document.getElementById("hidGuid").value = argu.guid;
}
}
}
function addEntAttendPerTip(addCount) {
if (addCount > 0) {
alert("操作成功!");
var result = new Object();
result.IsAdd = addCount;
window.returnValue = result;
window.close();
}
else {
alert("操作失败!");
}
}
<script>
添加完成以后,刷新下面的列表。并可对列表中的参会人员进行编辑和删除。
在临近上线的时候,突然出现了一个问题,当在添加完参会人员关闭模式窗口的时候,”奇迹“出现了,在关闭的时候弹出了一个新的页面提示操作成功,并伴有是否关闭窗口的提示框,火狐中并不会出现问题,IE中会出现此问题,在胜利到来的时候,老天总会和你开一些玩笑,兵来将挡水来土掩,查找资料,原因就在于点击添加的时候,出现了一个新窗口而不是在原有的窗口上面完成添加操作,最后在在添加参会人员的模式窗体 head 中添加 <base target="_self" />,让页面自己去处理请求,问题迎刃而解。
javascript 关闭窗口,弹出新窗口并带有确认关闭对话框解决办法的更多相关文章
- jsp弹出新窗口代码
1.最基本的弹出窗口代码其实代码非常简单: <SCRIPT LANGUAGE="javascript"> <!-- window.open (page.html) ...
- js弹出新窗口居中
方式1: <script language="javascript"> var newUrl = <%=newUrl % > //window.locati ...
- 点击grid单元格弹出新窗口
实现功能:点击指定单元格后会弹出新窗口,并且最后一行合计不会触发单元格触发函数 <script type="text/javascript"> grid.on('cel ...
- js如何弹出新窗口
js如何弹出新窗口 时间:2012-4-22 弹出新窗口也是在网页设计中会经常用到的,其用法也很简单,是通过调用javascript的内置函数windows.open来产生的. window.ope ...
- window.open浏览器弹出新窗口被拦截—原因分析和解决方案
最近在做项目的时候碰到了使用window.open被浏览器拦截的情况,在本机实验没问题,到了服务器就被拦截了,火狐有拦截提示,360浏览器拦截提示都没有,虽然在自己的环境可以对页面进行放行,但是对用户 ...
- chrome偶尔弹出新窗口的解决方案
最近使用谷歌浏览器,在搜索页点击搜索结果时,偶尔会弹出新窗口,而不是新标签,试验发现,只要将chrome里面安装的google drive app卸载就行了. 当然了,如果此方法不适合你的情况,还可以 ...
- 【WPF】监听WPF的WebBrowser控件弹出新窗口的事件
原文:[WPF]监听WPF的WebBrowser控件弹出新窗口的事件 WPF中自带一个WebBrowser控件,当我们使用它打开一个网页,例如百度,然后点击它其中的链接时,如果这个链接是会弹出一个新窗 ...
- 解决以showModalDialog打开的页面在提交表单时弹出新窗口的问题
源代码如下: 父页面: window.showModalDialog("../readfile/readFile.jsp","","dialogWid ...
- Bootstrap中关闭第二个模态框时出现的问题和解决办法
Bootstrap中关闭第二个模态框时出现的问题和解决办法 1.关闭第二个模态框时,第一个模态框跟着消失. 解决办法: 第二个模态框的代码不要写在第一个模态框里面,确保两个模态框相对独立; 2.关闭第 ...
- 微信内置浏览器浏览H5页面弹出的键盘遮盖文本框的解决办法(转)
最近在做微信公众号的内嵌页面,发现点击输入框时键盘盖住文本框,找到一段代码解决了这个问题. iOS和android手机都已亲测,需要的可以直接拷贝到代码中使用. js代码如下: $(function ...
随机推荐
- [转] 怎样快速而优雅地遍历 JavaScript 数组
我们一般用循环来遍历数组,而循环一直是 JavaScript 性能问题的常见来源,有时循环用得不好会严重降低代码的运行速度.例如,遍历数组时,我们会很自然地写出下面这种代码: // 未优化的代码1 v ...
- Android系统移植与驱动开发--第四章
第四章 源代码的下载和编译 一个android内核相当于4G,而一个Linux内个只有几百M,Linux内核相对于android内核来说实在是小巫见大巫.了解android源代码不一定要详细了解,只去 ...
- hash练习
/* poj 1200 Crazy Search 字符串hash O(n)枚举起点 然后O(1)查询子串hash值 然后O(n)找不一样的个数 复杂度是线性的 */ #include<iostr ...
- 二分图最大匹配(匈牙利算法Dfs模板)
#include<iostream> #include<cstdio> #include<cstring> #define maxn 2020 using name ...
- C#学习第三天
经过这几天的学习,真的有点觉得以前C学的太不好现在学C#也不顺畅,虽然很多东西都似曾相识,但是就是还得看好几遍才能记得住,而且现在都是简单的东西,还没有看到重载等稍微难点的地方.应该好好努力了,昨天忙 ...
- HTML5 History对象,Javascript修改地址栏而不刷新页面
一.History对象 History 对象包含用户(在浏览器窗口中)访问过的 URL. History 对象是 window 对象的一部分,可通过 window.history 属性对其进行访问. ...
- IDisposable 接口2
定义一种释放分配的资源的方法. 命名空间: System程序集: mscorlib(在 mscorlib.dll 中) 语法 C# C++ F# VB [ComVisibleAttribute(t ...
- ASP.NET几种清除页面缓存的方法
在asp.net中使用模式dialog时,你会发现每次打开的页面都是相同的内容,页面内容并没有刷新,这是缓存的原因造成的, 解决方法如下: 第一种是ASP.NET清除页面缓存 Response.Buf ...
- java mail 使用 gmail smtp 发送邮件
smtp 服务器:smtp.gmail.com 使用ssl的端口:465 用户名:username@gmail.com 密码:password** 基本配置没有问题,关键在于Google对安全性要求非 ...
- POJ3185 The Water Bowls(反转法or dfs 爆搜)
POJ3185 The Water Bowls 题目大意: 奶牛有20只碗摆成一排,用鼻子顶某只碗的话,包括左右两只在内的一共三只碗会反向,现在给出碗的初始状态,问至少要用鼻子顶多少次才能使所有碗都朝 ...