window.showModalDialog和window.open关闭子页面时刷新父页面【转】

2023-11-06 20:58

本文主要是介绍window.showModalDialog和window.open关闭子页面时刷新父页面【转】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


window.open 弹出新窗口的命令; 
'page.html' 弹出窗口的文件名; 
'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替; 
height=100 窗口高度; 
width=400 窗口宽度; 
top=0 窗口距离屏幕上方的象素值; 
left=0 窗口距离屏幕左侧的象素值; 
toolbar=no 是否显示工具栏,yes为显示; 
menubar,scrollbars 表示菜单栏和滚动栏。 
Resizable=no 是否允许改变窗口大小,yes为允许; 
location=no 是否显示地址栏,yes为允许; 
status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许

父窗体打开页面的javascript

function GoToPage(id)
     {
           
var title="title";
           
var url="xxxxx.aspx?ID="+id+"&Radom="+Math.random();;
           
var Width="700";
           
var Height="600";
           
var arguemnts = new Object();
           arguemnts.window = window;
            if (document.all&&window.print)
            {
                window.showModalDialog(url,arguemnts,
"dialogWidth:" + Width + "px;dialogHeight:" + Height + "px;center:yes;status:no;scroll:yes;help:no;");
                //或者window.showModelessDialog

               //模态窗口在关闭后可以直接在后面跟上刷新的语句

               window.location.reload();
            }
            
else 
           { 
                window.open(url,
"","width=" + Width + "px,height=" + Height + "px,resizable=1,scrollbars=1"); 
           }
        }

在 window.open打开的窗口中,关闭子窗口并刷新父窗口

window.opener.location.reload();window.opener=null;window.close();

在window.showModalDialog打开窗口中,关闭子窗口并刷新父窗口

window.dialogArguments.window.location = window.dialogArguments.window.location; self.close();

 

 

(一)showModalDialog使用例子,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.

farther.html 
--------------------------- 

<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
< HTML >
    
< HEAD >
        
< TITLE > New Document  </ TITLE >
        
< META  content ="EditPlus"  name ="Generator" >
        
< META  content =""  name ="Author" >
        
< META  content =""  name ="Keywords" >
        
< META  content =""  name ="Description" >
        
< script  language ="javascript" >  
        
<!--  
        
function  openChild(){
        
var  k  =  window.showModalDialog( " child.html " ,window, " dialogWidth:335px;status:no;dialogHeight:300px " ); 
        
if (k  !=   null
        document.getElementById(
" txt11 " ).value  =  k; 
        } 
        
// --> 
         </ script >
    
</ HEAD >
    
< BODY >
        
< FONT  face ="宋体" ></ FONT >
        
< br >
        传递到父窗口的值:
< input  id ="txt9"  type ="text"  value ="3333333333333"  name ="txt9" >< br >
        返回的值:
< input  id ="txt11"  type ="text"  name ="txt11" >< br >
        子窗口设置的值:
< input  id ="txt10"  type ="text"  name ="txt10" >< br >
        
< input  id ="Button1"  onclick ="openChild()"  type ="button"  value ="openChild"  name ="Button1" >
    
</ BODY >
</ HTML >


child.html 
---------------------------

<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
< HTML >
    
< HEAD >
        
< TITLE > New Document  </ TITLE >
        
< META  content ="EditPlus"  name ="Generator" >
        
< META  content =""  name ="Author" >
        
< META  content =""  name ="Keywords" >
        
< META  content =""  name ="Description" >
        
< meta  http-equiv ="Expires"  content ="0" >
        
< meta  http-equiv ="Cache-Control"  content ="no-cache" >
        
< meta  http-equiv ="Pragma"  content ="no-cache" >
    
</ HEAD >
    
< BODY >
        
< FONT  face ="宋体" ></ FONT >
        
< br >
        父窗口传递来的值:
< input  id ="txt0"  type ="text"  name ="txt0" >< br >
        输入要设置父窗口的值:
< input  id ="txt1"  type ="text"  name ="txt1" >< input  id ="Button1"  onclick ="setFather()"  type ="button"  value ="设置父窗口的值"  name ="Button1" >< br >
        输入返回的值:
< input  id ="txt2"  type ="text"  name ="txt2" >< input  id ="Button2"  onclick ="retrunValue()"  type ="button"  value ="关闭切返回值"  name ="Button2" >
        
< input  id ="Button3"  onclick =""  type ="button"  value ="关闭刷新父窗口"  name ="Button3" >
        
< script  language ="javascript" >  
        
<!--  
        
var  k = window.dialogArguments; 
        
// 获得父窗口传递来的值 
         if (k != null
        { 
        document.getElementById(
" txt0 " ).value  =  k.document.getElementById( " txt9 " ).value; 
        } 
        
// 设置父窗口的值 
         function  setFather() 
        { 
        k.document.getElementById(
" txt10 " ).value  =  document.getElementById( " txt1 " ).value 
        } 
        
// 设置返回到父窗口的值 
         function  retrunValue() 
        { 
        
var  s  =  document.getElementById( " txt2 " ).value; 
        window.returnValue
= s; 
        window.close(); 
        } 
        
// --> 
         </ script >
    
</ BODY >
</ HTML >


---------------------------- 
说明: 
由于showModalDialog缓存严重,下面是在子窗口取消客户端缓存的设置.也可以在服务器端取消缓存,参考: 
http://adandelion.cnblogs.com/articles/252137.html 
<meta http-equiv="Expires" CONTENT="0"> 
<meta http-equiv="Cache-Control" CONTENT="no-cache"> 
<meta http-equiv="Pragma" CONTENT="no-cache"> 



这篇关于window.showModalDialog和window.open关闭子页面时刷新父页面【转】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/359014

相关文章

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

如何关闭 Mac 触发角功能或设置修饰键? mac电脑防止误触设置技巧

《如何关闭Mac触发角功能或设置修饰键?mac电脑防止误触设置技巧》从Windows换到iOS大半年来,触发角是我觉得值得吹爆的MacBook效率神器,成为一大说服理由,下面我们就来看看mac电... MAC 的「触发角」功能虽然提高了效率,但过于灵敏也让不少用户感到头疼。特别是在关键时刻,一不小心就可能触

Flutter监听当前页面可见与隐藏状态的代码详解

《Flutter监听当前页面可见与隐藏状态的代码详解》文章介绍了如何在Flutter中使用路由观察者来监听应用进入前台或后台状态以及页面的显示和隐藏,并通过代码示例讲解的非常详细,需要的朋友可以参考下... flutter 可以监听 app 进入前台还是后台状态,也可以监听当http://www.cppcn

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

禁止HTML页面滚动的操作方法

《禁止HTML页面滚动的操作方法》:本文主要介绍了三种禁止HTML页面滚动的方法:通过CSS的overflow属性、使用JavaScript的滚动事件监听器以及使用CSS的position:fixed属性,每种方法都有其适用场景和优缺点,详细内容请阅读本文,希望能对你有所帮助... 在前端开发中,禁止htm

Ollama整合open-webui的步骤及访问

《Ollama整合open-webui的步骤及访问》:本文主要介绍如何通过源码方式安装OpenWebUI,并详细说明了安装步骤、环境要求以及第一次使用时的账号注册和模型选择过程,需要的朋友可以参考... 目录安装环境要求步骤访问选择PjrIUE模型开始对话总结 安装官方安装地址:https://docs.

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

Window Server2016加入AD域的方法步骤

《WindowServer2016加入AD域的方法步骤》:本文主要介绍WindowServer2016加入AD域的方法步骤,包括配置DNS、检测ping通、更改计算机域、输入账号密码、重启服务... 目录一、 准备条件二、配置ServerB加入ServerA的AD域(test.ly)三、查看加入AD域后的变