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

相关文章

SpringCloud使用Nacos 配置中心实现配置自动刷新功能使用

《SpringCloud使用Nacos配置中心实现配置自动刷新功能使用》SpringCloud项目中使用Nacos作为配置中心可以方便开发及运维人员随时查看配置信息,及配置共享,并且Nacos支持配... 目录前言一、Nacos中集中配置方式?二、使用步骤1.使用$Value 注解2.使用@Configur

如何关闭Mac的Safari通知? 3招教你关闭Safari浏览器网站通知的技巧

《如何关闭Mac的Safari通知?3招教你关闭Safari浏览器网站通知的技巧》当我们在使用Mac电脑专注做一件事情的时候,总是会被一些消息推送通知所打扰,这时候,我们就希望关闭这些烦人的Mac通... Safari 浏览器的「通知」功能本意是为了方便用户及时获取最新资讯,但很容易被一些网站滥用,导致我们

Python Selenium动态渲染页面和抓取的使用指南

《PythonSelenium动态渲染页面和抓取的使用指南》在Web数据采集领域,动态渲染页面已成为现代网站的主流形式,本文将从技术原理,环境配置,核心功能系统讲解Selenium在Python动态... 目录一、Selenium技术架构解析二、环境搭建与基础配置1. 组件安装2. 驱动配置3. 基础操作模

C#实现查找并删除PDF中的空白页面

《C#实现查找并删除PDF中的空白页面》PDF文件中的空白页并不少见,因为它们有可能是作者有意留下的,也有可能是在处理文档时不小心添加的,下面我们来看看如何使用Spire.PDFfor.NET通过C#... 目录安装 Spire.PDF for .NETC# 查找并删除 PDF 文档中的空白页C# 添加与删

Java并发编程之如何优雅关闭钩子Shutdown Hook

《Java并发编程之如何优雅关闭钩子ShutdownHook》这篇文章主要为大家详细介绍了Java如何实现优雅关闭钩子ShutdownHook,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 目录关闭钩子简介关闭钩子应用场景数据库连接实战演示使用关闭钩子的注意事项开源框架中的关闭钩子机制1.

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