模式窗口(Window.ShowModalDialogs)中提交不弹出新窗口
最近项目由于有用到模式窗体,也在Google 了一些资料,在此结合相关资料把自己使用的一些经验给大家分享一下。
我们在使用模式窗体时,经常要用会在模式窗体中提交表单之类,但要是没有处理好就会弹出新的窗体,那要如何处理呢?首先行介绍一下 模式窗体(Window.ShowModalDialog)
一、模式窗体介(Window.ShowModalDialogs)介绍
showModalDialog() (IE 4+ 支持)
showModelessDialog() (IE 5+ 支持)
window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框。
window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。
使用方法: vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])
vReturnValue = window.showModelessDialog(sURL [, vArguments] [,sFeatures])
参数说明:
sURL--
必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
vArguments--
可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures--
可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
1.dialogHeight :对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
2.dialogWidth: 对话框宽度。
3.dialogLeft: 离屏幕左的距离。
4.dialogTop: 离屏幕上的距离。
5.center: {yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。
6.help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。
7.resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。
8.status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no[Modal]。
9.scroll:{ yes | no | 1 | 0 | on | off }:指明对话框是否显示滚动条。默认为yes。
下面几个属性是用在HTA中的,在一般的网页中一般不使用。
10.dialogHide:{ yes | no | 1 | 0 | on | off }:在打印或者打印预览时对话框是否隐藏。默认为no。
11.edge:{ sunken | raised }:指明对话框的边框样式。默认为raised。
12.unadorned:{ yes | no | 1 | 0 | on | off }:默认为no。
参数传递:
1.要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如:
-------------------------------
obj.name="i5tt";
window.showModalDialog("modal.htm",obj,"dialogWidth=200px;dialogHeight=100px");</script>modal.htm<script>var obj = window.dialogArguments
alert("您传递的参数为:" + obj.name)</script>
-------------------------------
2.可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象。例如:
------------------------------
alert(str);</script>modal.htm<script>window.returnValue="http://www.i5tt.com";</script>
二、处理模式窗口中提交不弹出新窗口
第一种方法;
在<head></head>中加<base target="_self" /> 并在要点击的按钮上加PostBackUrl="#" 例如:
第二种方法;
新建一个ShowModal页面,在aspx页面中加
在aspx.cs页面中加
{string strLinkFlag = Request.QueryString["LinkFlag"].ToString();switch (strLinkFlag)
{case "NoticeInfo":
strTitle = "公告信息";
strUrlLink = "NoticeInfo.aspx?flag=" + Request.QueryString["Flag"].ToString();break;default:break;
}if (strUrlLink != String.Empty)
{//添加随机数,防止IE缓存string strRandom = BaseFunction.GetFormatDate();
strUrlLink += "&randomnum=" + strRandom;
MainWindow.Attributes.Add("src", strUrlLink);
}
}
在弹出窗体的aspx页面中加
{
var me;// 把父页面窗口对象当作参数传递到对话框中,以便对话框操纵父页自动刷新。me = window;// 显示对话框。window.showModalDialog(frmWin,me,'dialogWidth='+width +'px;dialogHeight='+height+'px;help:no;status:no')return false;
}</script>
aspx.cs页面中:
lnkTitle.Attributes.Add("onclick", "javascript:return OpenEditWin('" + showForm + "',600,500)");
转载于:https://www.cnblogs.com/waren168/archive/2011/07/12/2104484.html
模式窗口(Window.ShowModalDialogs)中提交不弹出新窗口相关推荐
- python点击按钮弹出新窗口_PyQt5点击button如何弹出新窗口?
怎么通过点击button,来打开一个新的窗口? 是写在同一个脚本里,还是把新窗口的代码放在另一个脚本里,然后通过点击按钮来运行? import sys from PyQt5.QtWidgets imp ...
- window.open浏览器弹出新窗口被拦截—原因分析和解决方案
最近在做项目的时候碰到了使用window.open被浏览器拦截的情况,在本机实验没问题,到了服务器就被拦截了,火狐有拦截提示,360浏览器拦截提示都没有,虽然在自己的环境可以对页面进行放行,但是对用户 ...
- html弹窗页面控制大小,使用JS弹出新窗口,并设置窗口的大小和位置等相关属性,传递参数...
使用JS弹出新窗口,同时向弹出的页面传递一个参数. 首先,使用JS获取需要传递的参数.然后将参数传入心得页面. window.open 弹出新窗口的命令: page.html 弹出新窗口的文件名: n ...
- 在showModalDialog和showModelessDialog中提交form时不弹出新窗口
在showModalDialog和showModelessDialog中提交form时不弹出新窗口 方法一: 在弹出的页面head部分加上<base target="_self&quo ...
- Angular2项目中浏览器拦截弹出窗口的解决方法
Angular2项目中浏览器拦截弹出窗口的解决方法 为什么把项目是Angular2的放到了前边? 因为正常也页面网上已经很多解决方案.请自行百度或Google. 现象:当window.open为用户触 ...
- 如何在WordPress中创建优惠券弹出窗口(逐步)
Do you want to create a coupon popup in WordPress? Coupon popups are a great way to convert your web ...
- win7系统老是弹窗怎么解决_如何解决win7系统中打开文件夹老是弹出新窗口的问题...
在win7系统中,一般我们在打开某个文件夹时,都是在同一个窗口显示,查看非常方便,但是有的小伙伴却遇到了每次打开文件夹都会弹出新窗口的问题,那么这个时候应该怎么办呢?下面小编就给大家分享一下win7系 ...
- 如何点击按钮弹出新窗口,输入数据后返回并刷新页面
如何点击按钮弹出新窗口,输入数据后返回并刷新页面? 作者:孟宪会 出自:[孟宪会之精彩世界] 发布日期:2003年7月8日 4点0分13秒 在一些.NET论坛中有人经常会问:如何在页面中点击按钮打开新 ...
- 自动弹窗被拦截 html,解决JS弹出新窗口被浏览器阻止的解决方案
本文转载自:http://blog.csdn.net/cntanghai/article/details/6643522 在js中通过open弹出窗口可能会被阻止,我尝试这段代码: var flag ...
- MFC基于对话框上插入MENU菜单栏并点击菜单弹出新窗口
一.创建基于对话框的应用程序框架 1.选择菜单项文件->新建->项目,弹出"新建项目"对话框. 2.直接选择"MFC应用程序"或左侧面板中模板的Vi ...
最新文章
- group by总结(还有having)
- 十三、limit 的使用
- DROP TABLE、TRUNCATE TABLE和DELETE的区别
- java转net_将java库转换为.net库
- eclipse光标变成黑块变粗解决办法
- python中order函数_order by排序
- 常用的后端命令 【笔记】
- 喜欢的数字:使用一个字典来_数字证书:何时何地使用它们
- mysql for update死锁_Mysql 数据库死锁过程分析(select for update)
- 一线大厂软件测试流程(思维导图)详解
- 1080i和1080p区别
- ubuntu18.04突然关机重启后显卡驱动失效
- python 本地音乐播放器制作过程
- 胡爱玲医生论中医治疗荨麻疹的优势和理念
- android中如何保存对象集合中,如何序列化对象并将其保存到Android中的文件?
- 极路由——彻底凉了,云插件服务都关闭了,还没root的抓紧了
- 微信小程序的开发:通过微信小程序看前端
- Git命令问题:Found a swap file by the name “.git/.MERGE_MSG.swp”
- 时代周刊对比海地与汶川地震 称赞中国重建能力
- 干眼症产品的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
热门文章
- 同态加密 应用案例 入门
- mysql修改主键为unique_mysql 如何修改、添加、删除表主键及unique约束
- php 字符转ansi,php 字符编码转换类,支持ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom 互相转换...
- Java实现斐波那契数列的两种方法
- Leetcode之通配符匹配
- html实现圆形计时器特效,js css3圆形的时分秒计时器动画特效
- javscript DOM基础知识(常用篇)
- 洛谷P2580 于是他错误的点名开始了 题解
- Gym - 100623J Just Too Lucky (数位dp)
- bzoj4754: [Jsoi2016]独特的树叶