`

关闭模态对话框,刷新父窗口,异步上传文件

阅读更多

最近做一个项目,excel导入数据,有一个同事使用模态对话框,上传并返回提示,如果正确上传文件,给提示,关闭模态对话框,刷新父窗口的列表。

 

1.打开一个模态对话框:

function openWindow(innerWidth,innerHeight)
{
window.showModalDialog("${pageContext.request.contextPath}/excelupLoad.js",window,
 'dialogWidth:' + innerWidth +'px;dialogHeight:'+ innerHeight+'px;');
}
 

2.一般情况下给了提示后就可以用下面这个来关闭窗口,刷新父窗口:

//刷新打开窗口的上一个窗口
this.opener.location.reload();
//关闭窗口
window.close();

 可就是不能刷新窗口,上下顺序换了还是不行;

 

3. 最后到网上搜了搜:

关闭模态对话框,刷新父窗口
showModalDialog   does   not   have   an   opener   (since   it   is   to   be   used   as   a   glorified   alert/confirm/prompt   so
模态对话框,没有opener,不能用window.opener.location.reload();或window.parent.location.reload();
要通过返回值来判断关闭后刷新

function   openWindow(url,   xsize,   ysize)
{
  res   =   showModalDialog(url, " ", "dialogWidth: "+xsize+ ";dialogHeight: "+ysize+ ";status=no;help:no;center:yes ")  
    if   (res== 'ok ')   window.location.reload(1)
}

and   in   the   dialog   use
<td   onclick= "window.returnValue= 'ok ';window.close();   "> Close </td> 
 

4. 上传文件由于要给一个上传是否成功的提示,因为我们用的是struts2框架,只能通过跳转页面来给提示,由于在模态对话框中,如果再提交页面的话,用户体验就太不好了,因此要选择异步提交,那怎样异步上传文件呢?

从网上找到了一个异步上传文件的插件:ajaxfileupload.js

 $.ajaxFileUpload(
                   {
		                url:'${pageContext.request.contextPath}/${param.url}.action',            //需要链接到服务器地址
		                secureuri:false,
		                fileElementId:'upLoadFile',                        //文件选择框的id属性
		                dataType: 'json',                                     //服务器返回的格式,可以是json
		                success: function (data, status)            //相当于java中try语句块的用法
		                {      
			                if(data.success==true)
			                {
			                    alert('上传成功!');
			                    window.returnValue='ok';//返回值
				  	    window.close(); //关闭窗口
				         }
				  	else if(data.success ==false){		
						  alert('上传失败!');
			                }
		                },
		                error: function(){
					//alert("error");
			         },
			         complete:function(XMLHttpRequest, textStatus){
			               //alert("complete");
			        }
                     }
 

5. form

<form action="${pageContext.request.contextPath}/uploadFile.action"					
method="post" enctype="multipart/form-data" target="_self">
<input type="file"  name="upLoadFile" id="upLoadFile"  />
<input type="button" value="上传" onclick="ajaxFileUpload()" />
</form>
 

 

分享到:
评论

相关推荐

    子窗口与父窗口刷新

    在Java Web开发中,"子窗口与父窗口刷新"是一个常见的交互场景,特别是在构建多层级界面或模态对话框时。这里的"子窗口"通常指的是弹出的窗口、框架或者iframe,而"父窗口"则是打开子窗口的那个主页面。在这样的场景...

    具有部分视图和模态对话框的MVC主细节示例

    模态对话框(Modal Dialog)是一种常见的用户界面设计模式,它在一个浮动窗口中显示内容,用户必须与其交互后才能继续操作。在Web开发中,模态对话框常用于确认操作、显示详细信息或收集额外输入。使用jQuery UI库或...

    asp.net下模态对话框关闭之后继续执行服务器端代码的问题

    - 或者,如果你使用的是自定义的JavaScript模态对话框,可以创建一个回调函数来通知父窗口对话框已经关闭。 3. **服务器端处理**: - 当`btnComput`的`Click`事件触发时,检查刚才设置的标志。如果对话框已关闭,...

    Ajax Model Dialog

    模态对话框是一种阻止用户对父窗口进行操作,直到对话框被关闭的交互设计。用户必须先处理对话框中的内容,才能继续与主页面交互。这种设计有助于集中用户的注意力,确保他们完成所需的操作,如输入信息、确认或取消...

    弹出一个层(禁止刷新父页或允许刷新)5种实现方法

    在IT行业中,弹出层(通常称为模态窗口或对话框)是一种常见的用户界面设计,用于在不离开当前页面的情况下显示额外信息或进行交互。在标题"弹出一个层(禁止刷新父页或允许刷新)5种实现方法"中,我们将探讨五种不同...

    Windows 程序设计(第5版)(上、下册)--详细书签版

    11.2.l 模态对话框与非模态对话框的区别 11.2.2 新的 colors程序 11.2.3 hexcalc:窗口还是对话框? 11.3 通用对话框 11.3.l 增强poppad 11.3.2 unicode 文件 i/o 11.3.3 更改字体 11.3.4 ...

    程序员常用JavaScript特效

    页面动态加载是JavaScript的一大亮点,通过AJAX(异步JavaScript和XML)技术,可以实现页面部分内容的无刷新更新,提升网页性能。例如,使用`XMLHttpRequest`对象或者更现代的`fetch` API,可以在后台获取新数据并...

    aspAJAX扩展控件

    模态窗体是一种弹出式窗口,用户必须先关闭该窗口才能与父窗口进行交互。在 ASP.NET AJAX 中,我们通常使用 `AjaxControlToolkit.ModalPopupExtender` 控件来实现这一功能。这个控件可以在不离开当前页面的情况下...

    .net 刷新页面后弹出重试框的解决方法

    一个常见的方法是,在模式窗口关闭之前,不直接刷新父页面,而是使用JavaScript发送一个异步请求(AJAX)到服务器,让服务器处理完必要的逻辑后,再根据服务器返回的数据决定是否刷新父页面。这种方法可以有效避免...

    C# 线程A访问非线程A创建的控件 、 线程内创建窗体置顶显示ShowDialog

    `Form.ShowDialog`方法会在当前线程中打开一个模态对话框,阻止用户与父窗口或其他窗体交互,直到该对话框关闭。为了在非主线程中显示窗体并使其置顶,你需要确保在正确的线程上执行`ShowDialog`,因为窗体必须在其...

    jQuery Form 页面表单提交的小例子

    此外,还有`closeWindow`函数,这个函数用于关闭当前窗口或模态对话框,它调用了`window.parent.ymPrompt.doHandler('close', true)`,这通常意味着父窗口或框架集中的某个方法来处理关闭动作。 总结来说,这个...

    EasyUI中实现form表单提交的示例分享

    如果操作成功,会显示提示消息,并刷新父窗口的datagrid,关闭当前对话框;如果操作失败,会弹出错误提示。 5. `parent.$`: 这种写法表明表单可能在模态对话框中,`parent.$`用于访问父窗口的jQuery对象。 在实际...

    JavaScript精彩网页特效实例

    2. 模态对话框:通过JavaScript创建自定义模态框,用于显示详细信息、表单填写等。 3. 悬浮按钮:根据用户滚动位置动态调整按钮的位置,增加用户互动。 四、JavaScript事件处理 1. 事件监听:使用`addEventListener...

    JS中表单的使用小结

    - 如果页面是通过 `window.open()` 打开的弹出窗口,可以使用 `window.opener.location.reload()` 刷新父窗口。 - 对于使用 `window.showDialog()` 弹出的模式窗口,可以通过 `window.dialogArguments.location....

    海辉面试题

    - `window.showModalDialog`(非标准):用于显示模态对话框。 - `window.open`:用于打开新窗口。 #### 12. 在showDialog中如何对父窗口进行操作 使用`window.opener`可以引用父窗口,然后对其进行操作。 #### ...

    Javascript网页特效大全

    11. **AJAX异步请求**:使用XMLHttpRequest或fetch API,可以实现页面无需刷新即可与服务器交换数据,更新部分页面内容。 12. **事件委托**:通过在父元素上监听事件,可以更高效地处理子元素的事件,避免为每个子...

    ajax跨页面提交表单

    在文档中,使用了artDialog.js来创建一个模态对话框,显示操作成功的信息,并在一定时间后自动刷新父页面。这说明在实际应用中,开发者可以根据需要使用各种JavaScript库来增强用户交互体验。 用户列表页面(user....

    js和人机交互.rar

    6. **模态框和提示**:通过JavaScript,我们可以创建模态窗口或弹出提示,向用户提供信息或确认操作。例如,`alert()`、`confirm()`和`prompt()`是基本的对话框函数。 7. **路由管理**:在单页应用(SPA)中,...

Global site tag (gtag.js) - Google Analytics