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

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

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

<body οnkeydοwn="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="关闭" οnclick="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" οnclick="window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,'-')" value="上移">
  <input type="button" οnclick="window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,'-')" value="左移">
  <input type="button" οnclick="window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,'+')" value="右移">
  <input type="button" οnclick="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之间相互控制各自的显示页面,传递变量和数据等。这要看各位的发挥了。

如何避免在IE中执行window.close()后弹出一个新IE窗口相关推荐

  1. html 点击新建窗口,【单选题】在HTML中,若实现单击超链接时,弹出一个新的网页窗口,下列的()选项符合要求。 A. 节目 B. 节目 C. 节目 D. 节目...

    [单选题]在HTML中,若实现单击超链接时,弹出一个新的网页窗口,下列的()选项符合要求. A. 节目 B. 节目 C. 节目 D. 节目 更多相关问题 扩展不确定度为()Ω,取包含因子k=2.A.0 ...

  2. 黄聪:VS2010中如何让webbrowser不弹出JS异常错误窗口(c#.net)

    黄聪:VS2010中如何让webbrowser不弹出JS异常错误窗口(c#.net) 参考文章: (1)黄聪:VS2010中如何让webbrowser不弹出JS异常错误窗口(c#.net) (2)ht ...

  3. 计算机窗口弹不出来桌面怎么弄,怎么在电脑中设置不再弹出程序的广告窗口

    怎么在电脑中设置不再弹出程序的广告窗口 有的小伙伴在使用电脑过程中,总是会收到各种软件程序的弹出广告窗口,觉得特别打扰电脑的使用,因此想要设置不再弹出广告窗口,但是却不知道如何设置,那么小编就来为大家 ...

  4. window.showModalDialog();会弹出当前页面脚本发生错误部分解决方法

    说明一下下面都是我在做项目时的方法但查window.showModalDialog();会弹出当前页面脚本发生错误时没有方法所以我选择一个自认为可以的方法解决这个问题 一.首先说说我要做的效果是什么: ...

  5. C语言socket accept()函数(提取出所监听套接字的等待连接队列中第一个连接请求,创建一个新的套接字,并返回指向该套接字的文件描述符)

    文章目录 名称 使用格式 功能参数描述 参数 sockfd addr addrlen 返回值 示例 man 2 文档中的accept解释 错误处理 名称 accept() 接收一个套接字中已建立的连接 ...

  6. html 弹出固定大小的页面,html弹出固定大小的窗口(HTML pops up a fixed size window).doc...

    html弹出固定大小的窗口(HTML pops up a fixed size window) html弹出固定大小的窗口(HTML pops up a fixed size window) Woul ...

  7. 使用Python解决对比出两个Excel文件中的不同项并将结果重新写入一个新的Excel文件

    使用Python解决对比出两个Excel文件中的不同项并将结果重新写入一个新的Excel文件 因为有统计成员到会情况的任务,每次汇总时都很麻烦,需要一个个对应腾讯会议导出名单的成员,然后在总表上进行标 ...

  8. html里左flash广告,网页中定时弹出一个Flash广告

    网页中定时弹出一个FLASH广告的网页特效代码.过一定时间自动消失.当打开页面时,加载的FLASH广告在页面内容的上面播放显示,位置默认设置为屏幕的中间(可自行修改其播放位置),待FLASH广告播放完 ...

  9. 使用ArcMap中的工具时,总是弹出windows安全警告窗口解决方法

    在ArcMap的10.4或者更高版本中,使用工具箱工具时总是弹出windows安全警告窗口,提示"在此页上的ActiveX控件和本页上的其他部分的交互可能不安全.你想允许这种交互吗?&quo ...

  10. java中在方法体内抛出异常_Java异常处理中___用于方法体内,抛出一个异常对象。...

    Java异常处理中___用于方法体内,抛出一个异常对象. 答: throw; 智慧职教: 运输高致病性动物病原微生物菌(毒)种或者样本的,与内包装要求错误的是 答:E.主容器表面标注"高致病 ...

最新文章

  1. Python 高阶函数filter、map、reduce、reversed、sorted及迭代器函数 iter
  2. 细说接口性能优化的11个小技巧
  3. 怎么用python处理excel文件-用Python读写Excel文件的方式比较
  4. MySQL / 索引模型
  5. Java 异步回调机制实例解析
  6. Java BIO 聊天程序
  7. rn php,RN和React路由详解及对比
  8. 日志记录总结要整理的地方
  9. CorelDraw x6【Cdr x6】官方简体中文破解版(64位)安装图文教程、破解注册方法...
  10. java音量调节_音量控制setVolumeControlStream
  11. 小武与tfpyth的碰撞----torch.autograd.Function进阶版本
  12. android 7 uc flash player,大神教你解决win7系统uc浏览器提示flash player遭到阻止的详细办法...
  13. 信息系统项目管理师必背核心考点(六十二)项目组合治理主要过程
  14. 59.qt quick-qml调色板(颜色取色器)实现、自定义QQuickStyle样式
  15. 【程序员才懂的梗】全程高能 爆笑硬核 你中了几个 | 程序员的日常 搞笑瞬间
  16. 强袭自由高达,我的第一个作品
  17. 开源 cocos2d-html5版 五彩连珠.
  18. amd服务器6300系列,AMD新款Opteron 6300服务器CPU评测
  19. Redmi Note 11T什么时候发布 Redmi Note 11T配置如何
  20. 【哲学心理学】何为占有欲?何为真爱?

热门文章

  1. 2015中考计算机考试时间,2015中考时间安排
  2. linux保险箱软件,手机加密App哪个好?手机加密软件推荐
  3. php拼手速 抢红包,拼手速必备 | 这样设置,微信抢红包速度更快!
  4. Heli Track
  5. 32个高效思维模型,快速提升你的思考力!
  6. mysql to sqlserver_mysql to sqlserver
  7. python掷骰子实验报告_python掷骰子游戏
  8. 梦回山海推广码jn0010 梦回山海推广码
  9. python concat时报错‘InvalidIndexError: Reindexing only valid with uniquely valued Index objects’
  10. 回溯法,随机迷宫,以及更多