| 加入收藏| 设为首页| 联系我们

首页 站长学习 站长之家 源码下载 建站素材 书籍教程 常用工具
 您现在的位置: 动力中国 >> 网络编程 >> C#教程 >> 文章正文  
 showModalDialog和showModelessDialog的区别
 

showModalDialog和showModelessDialog的区别

http://www.domcn.org  文章来源:本站收藏  点击数:

  关键字:showModalDialog和showModelessDialog的区别

一、showModalDialog和showModelessDialog有什么不同?
  showModalDialog:被打开后就会始终保持输入焦点。除非对话框被关闭,否则用户无法切换到主窗口。类似alert的运行效果。
  showModelessDialog:被打开后,用户可以随机切换输入焦点。对主窗口没有任何影响(最多是被挡住一下而以。:P)


二、怎样才让在showModalDialog和showModelessDialog的超连接不弹出新窗口?
  在被打开的网页里加上<base target=_self>就可以了。这句话一般是放在<html>和<body>之间的。


三、怎样才刷新showModalDialog和showModelessDialog里的内容?
  在showModalDialog和showModelessDialog里是不能按F5刷新的,又不能弹出菜单。这个只能依靠javascript了,以下是相关代码:


<body onkeydown=if (event.keyCode==116){reload.click()}>
<a id=reload href=filename.htm style=display:none>reload...</a>


  将filename.htm替换成网页的名字然后将它放到你打开的网页里,按F5就可以刷新了,注意,这个要配合<base target=_self>使用,不然你按下F5会弹出新窗口的。


四、如何用javascript关掉showModalDialog(或showModelessDialog)打开的窗口。
  <input type=button value=关闭 onclick=window.close()>
  也要配合<base target=_self>,不然会打开一个新的IE窗口,然后再关掉的。


五、showModalDialog和showModelessDialog数据传递技巧。
  (作者语:本来想用一问一答形式来写的,但是我想不出这个怎么问,所以只好这样了。)
  这个东西比较麻烦,我改了好几次了不是没办法说明白(语文水平越来越差了),只好用个例子说明了。
  例子:
    现在需要在一个showModalDialog(或showModelessDialog)里读取或设置一个变量var_name


      一般的传递方式:
        window.showModalDialog(filename.htm,var_name)
        //传递var_name变量
      在showModalDialog(或showModelessDialog)读取和设置时:
        alert(window.dialogArguments)//读取var_name变量
        window.dialogArguments=oyiboy//设置var_name变量
    这种方式是可以满足的,但是当你想在操作var_name同时再操作第二个变理var_id时呢?就无法再进行操作了。这就是这种传递方式的局限性。
    
      以下是我建议使用的传递方式:
        window.showModalDialog(filename.htm,window)
        //不管要操作什么变量,只直传递主窗口的window对象
      在showModalDialog(或showModelessDialog)读取和设置时:
        alert(window.dialogArguments.var_name)//读取var_name变量
        window.dialogArguments.var_name=oyiboy//设置var_name变量


        同时我也可以操作var_id变量
        alert(window.dialogArguments.var_id)//读取var_id变量
        window.dialogArguments.var_id=001//设置var_id变量


        同样还可以对主窗口的任何对象进行操作,如form对象里的元素。
        window.dialogArguments.form1.index1.value=这是在设置index1元素的值


六、多个showModelessDialog的相互操作。
  因为光说很费劲,我就偷点懒,直接用代码来说了,如果不明白的话那就直接来信(oyiboy#163.net(使用时请将#改成@))问我吧。


  以下代码的主要作用是在一个showModelessDialog里移动别一个showModelessDialog的位置。


  主文件的部份js代码。
  var s1=showModelessDialog(控制.htm,window,dialogTop:1px;dialogLeft:1px) //打开控制窗口
  var s2=showModelessDialog(about:blank,window,dialogTop:200px;dialogLeft:300px)  //打开被控制窗口


  控制.htm的部份代码。
  <script>
    //操作位置数据,因为窗口的位置数据是xxxpx方式的,所以需要这样的一个特殊操作函数。
function countNumber(A_strNumber,A_strWhatdo)
{
A_strNumber=A_strNumber.replace(px,)
A_strNumber-=0
switch(A_strWhatdo)
{
case -:A_strNumber-=10;break;
case +:A_strNumber+=10;break;
}
return A_strNumber + px
}
  </script>
  <input type=button onclick=window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,-) value=上移>
  <input type=button onclick=window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,-) value=左移>
  <input type=button onclick=window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,+) value=右移>
  <input type=button onclick=window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,+) value=下移>


  以上关键部份是:
    窗口命名方式:var s1=showModelessDialog(控制.htm,window,dialogTop:1px;dialogLeft:1px)
    变量访问方式:window.dialogArguments.s2.dialogTop


  这个例子只是现实showModelessDialog与showModelessDialog之间的位置操作功能,通过这个原理,在showModelessDialog之间相互控制各自的显示页面,传递变量和数据等。这要看各位的发挥了。


showModalDialog和showModelessDialog的区别
  • 上一篇文章:

  • 下一篇文章:
  •  热门文章
    普通文章 电子邮件改头换面 四公司畅谈未
    普通文章 PC病毒史上最声名狼藉的八大病
    普通文章 Rails系统中的AJAX开发技术简析
    普通文章 基于ASP.NET AJAX框架实现表单
    普通文章 开发ASP.NET AJAX客户端定制行
    普通文章 用JFreeChart对JSP报表进行增强
    普通文章 SQL Server 2005上的CLR和ADO.
    普通文章 SQL Server 2005的XML支持机制
    普通文章 Firefox中标签式浏览技巧大全
    普通文章 Tomcat中的Session和Cookie大揭
     
     推荐文章
    推荐文章 把Google地图嵌入网页 就是这么
    推荐文章 迅雷搜索候选资源出错的解决
    推荐文章 轻松去除迅雷里的各种广告和资
    推荐文章 突破限制 免费领养到QQ空间五级
    推荐文章 Rational统一过程RUP贴近中小软
    推荐文章 构建自己的轻量级XML DOM分析程
    推荐文章 WPS Office 2007技巧:妙用配置
    推荐文章 Excel 2007:求余数函数实用进阶
    推荐文章 浅谈ASP.NET的Postback
    推荐文章 软件开发中项目需求管理简述
     
     相关文章
    没有相关文章
    设为首页 | 加入收藏 | 广告合作 | 联系站长 | 版权申明 |
    动力中国为网友提供免费学习资料,可用资源,如果您认为我们的相关内容侵害到了您的权利请联系管理员
    Copyright © 2006-2008 domcn.org All Rights Reserved.