ShowModalDialog与window.open的区别

Java代码  

  1. function goToURL(url,args,self){  
  2.     if(self=="0"){          //本页打开  
  3.         window.location = url+args;  
  4.     }if(self=="1"){     //新页打开  
  5.         window.open(url+args);  
  6.     }  
  7. }  

 

<a href="#" onclick="goToURL(XXXX)" id="href1">XXX</a>不能要target="_XXX“,否则js失效

ShowModalDialog函数、改变模态窗口大小

ShowModalDialog函数的功能:

打开一个子窗口,并且可与父窗口相互传递数据,它与window.open的最大区别就在于由ShowModalDialog打开子窗口后,父窗口将不能操作。
使用方法:

vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])

参数说明:

sURL

必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
vArguments

可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures

可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“; ”隔开。
                    dialogHeight 对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
   dialogWidth: 对话框宽度。
   dialogLeft: 距离桌面左的距离。
   dialogTop: 离桌面上的距离。
   center: {yes | no | 1 | 0 } :窗口是否居中,默认yes,但仍可以指定高度和宽度。
   help: {yes | no | 1 | 0 } :是否显示帮助按钮,默认yes。
   resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。
   status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no        [Modal]。
                  scroll:{ yes | no | 1 | 0 | on | off } :指明对话框是否显示滚动条。默认为yes。

参数传递方法:

父窗口向子窗口传递参数采用ShowModalDialog的第2个参数即可,父窗口要获取子窗口传回的参数则可通过ShowModalDialog函数的返回值获取。
子窗口获取父窗口参数的方法为采用子窗口window对象dialogArguments属性获取,例如:
var a=window.dialogArguments;
子窗口向父窗口返回参数采用window.returnValue属性,如:
window.returnValue=1;
window.close();

 

改变模态窗口大小

1.html

< HTML>
< HEAD>
< TITLE> 改变对话框的大小< /TITLE>
< /HEAD>
< script>
function showdialog(){
window.showModalDialog(" 2.html" ," " ,' edge: Raised; center: Yes; help: Yes; resizable: Yes; status: No; dialogHeight:200px; dialogWidth:300px' );
}
< /script>
< BODY>
< input type=button value=" showdialog" onclick=" showdialog(); " >
< /BODY>
< /HTML>

2.< HTML>
< HEAD>
< TITLE> 改变对话框的大小< /TITLE>
< /HEAD>

< BODY onload=Resize_dialog(1000,1000,1000,1000)>
< SCRIPT LANGUAGE=" JavaScript" >
function Resize_dialog(t,l,w,h) {

window.dialogTop = t+" px" ;
window.dialogLeft = l+" px" ;
window.dialogHeight = h+" px" ;
window.dialogWidth = w+" px" ;
}

< /SCRIPT>
< /BODY>
< /HTML>

=================================================================================

window.open是打开新窗口

window.showModalDialog(URL,dialogArgments.features) 打开一个新窗口
URL为要开启的网页。
dialogArgments为设定好传递给新视窗网页的参数,可以为任意数据类型。
feature 与open()的类似,都是格式方面的设定。调用格式为featureName1:featureValue1:(分号)featureName2:featureValue2:
certer
, dialogHeight
, dialogLeft
,dialogTop
,dialogWidth
,help
(是否显示help按钮,下同),status
,resizeable

值=1为yes,0为no.

我认为最重要的是dialogArgments

,可以传递值到新的窗口。
第二重要就是 它的返回值 window.returnValue.可以在showModalDialog开启的窗口关闭后前,回传一个任意类型的值

参数传递:

1.要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如:

-------------------------------

parent.htm

<script>

var obj = new Object();

obj.name="51js";

window.showModalDialog("modal.htm",obj,"dialogWidth=200px;dialogHeight=100px");

</script>

modal.htm

<script>

var obj = window.dialogArguments

alert("您传递的参数为:" + obj.name)

</script>

-------------------------------

2.可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象。例如:

------------------------------

parent.htm

<script>

str
=window.showModalDialog("modal.htm",,"dialogWidth=200px;dialogHeight=100px");

alert(str);

</script>

modal.htm

<script>

window.returnValue="http://www.51js.com";

</script>

====================================================================================

showModalDialog() 弹出一个对话框,对话框是依附于打开它的那个窗口的;window.open() 是开一个新窗口,和打开它的那个窗口是独立的

showModalDialog() 必须关闭才能操作打开它的那个窗口;而 window.open() 打开的窗口不必关闭也可以操作打开它的那个窗口

二者控制打开它的窗口方法也不一样,一个使用 dialogArguments,后者使用 opener

 

Window.open代码  

  1. <SCRIPT LANGUAGE="javascript">  
  2. <!--  
  3. window.open ('page.html', 'newwindow', 'height=600, width=800, top=0, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no')  
  4. //写成一行  
  5. -->  
  6. </SCRIPT>  
  7.   
  8. 参数解释:  
  9.   
  10. <SCRIPT LANGUAGE="javascript"> js脚本开始;  
  11. window.open 弹出新窗口的命令;  
  12. 'page.html' 弹出窗口的文件名;  
  13. 'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替;  
  14. height=100 窗口高度;  
  15. width=400 窗口宽度;  
  16. top=0 窗口距离屏幕上方的象素值;  
  17. left=0 窗口距离屏幕左侧的象素值;  
  18. toolbar=no 是否显示工具栏,yes为显示;  
  19. menubar,scrollbars 表示菜单栏和滚动栏。  
  20. resizable=no 是否允许改变窗口大小,yes为允许;  
  21. location=no 是否显示地址栏,yes为允许;  
  22. status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;  
  23. </SCRIPT> js脚本结束   

 

时间: 2024-10-02 05:40:08

ShowModalDialog与window.open的区别的相关文章

浅析document.ready和window.onload的区别

 这篇文章主要介绍了document.ready和window.onload的区别,有需要的朋友可以参考一下 Javascript 只有在DOM元素已经定义以后才可以对其执行某种操作.   jQuery使用document.ready来保证所要执行的代码是在DOM元素被加载完成的情况下执行.比如在"jQuery基础 - 如何开始"一文里,我用到如下jQuery代码:    代码如下: <!--   $(document).ready(function ()            

winforms-Winforms中Form和Window有什么区别?什么时候要用到Window?Windows呢?

问题描述 Winforms中Form和Window有什么区别?什么时候要用到Window?Windows呢? Winforms中Form和Window有什么区别?什么时候要用到Window?Windows呢? 解决方案 window是wpf的,form是windows forms的,在winforms中,对话框.窗口等都是窗体(from). 解决方案二: WinForm是.Net开发平台中对Windows Form的一种称谓 Window 对象表示浏览器中打开的窗口 Microsoft Wind

js的window.showModalDialog及window.open用法实例分析_javascript技巧

本文实例讲述了js的window.showModalDialog及window.open用法.分享给大家供大家参考.具体分析如下: 一.window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 二.基本语法: window.open(pageURL,name,parameters) 其中: pageURL 为子窗口路径 name 为子窗口句柄 parameters 为窗口参数(各参数用逗号分隔) 三.示例: <SCRIPT>

window.open()与window.location()的区别

window.open()是可以在一个网站上打开另外的一个网站的地址 而window.location()是只能在一个网站中打开本网站的网页 <1>区别:    window.open()是可以在一个网站上打开另外的一个网站的地址 而window.location()是只能在一个网站中打开本网站的网页 <2>window.open()详解 <!-- window.open ('page.html') --> </SCRIPT> 因为着是一段javascrip

JS:window.showModalDialog和window.returnValue的应用

js|window fireForm.htm:点击"上传"按钮弹出内部窗口(showModalDialog),代码如下: <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title><script language="javascri

Jquery中$(document).ready()和window.onload的区别

最基本的区别 1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕. 2.编写个数不同 window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个 $(document).ready()可以同时编写多个,并且都可以得到执行 3.简化写法 window.onload没有简化写法 $(document).ready(function()

ECMA-262标准的JS里,eval和window.eval的区别

看似很简单,运行也正确.eval声明的a只有内部可见:window.eval声明的b全局可见.   代码如下 复制代码 <script> function A() {     eval("var a=1");     window.eval("var b=1"); } A(); alert(typeof a);    //undefined alert(typeof b);    //number </script> 不过事后回想起来感觉有些

JS教程:window.location用法区别

window.location.href=&http://www.webjx.com/javascript/ldquo;url":改变url地址; window.location.replace("url"):将地址替换成新url,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过"前进"和"后 退"来访问已经被替换的URL,这个特点对于做一些过渡页面非常有用! window.

jquery $(document).ready() 与window.onload的区别

Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间          window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行.          $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕.  2.编写个数不同           window.onload不能同时编写多个,如果有多个window