showModalDialog窗口去缓存_窗口去边框

2020-02-27 其他范文 下载本文

showModalDialog窗口去缓存由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“窗口去边框”。

一、前言

要打开一个可以载入页面的子窗口有三种方法,分别是window.open、window.showModalDialog和window.showModeleDialog。

open方法就是打开一个页面,可以说同用url链接打开一个页面一样,不推荐使用,因为很多浏览器会拦截。

这里推荐使用的是window.showModalDialog和window.showModeleDialog,下面介绍二者的异同和用法。

二、showModalDialog和showModeleDialog的区别

showModalDialog:被打开后就会始终保持输入焦点,除非对话框被关闭,否则用户无法切换到父窗口,类似alert的运行效果。

showModeleDialog:被打开后,用户可以随机切换输入焦点。对主窗口没有任何影响,最多是被挡住一下而以。

三、怎样才让在showModalDialog和showModeleDialog里的超连接不弹出新窗口

在默认情况下,showModalDialog和showModeleDialog窗口中的链接都会导致打开一个新的窗口,但这不是我们需要的。

解决这个问题的方法是在被showModalDialog和showModeleDialog窗口调用的页面添加

如下:

被打开的页面

四.、showModalDialog和showModeleDialog不使用缓存

showModalDialog和showModeleDialog在第一次打开页面时会默认缓存该页面,如果再次打开相同URL的页面的话,他们会直接调用缓存中的页面,而不是从服务器返回,要不使用缓存可进行如下配置:

被打开的页面

//禁止浏览器从本地缓存中调阅页面,网页不保存在缓存中,每次访问都刷新页面。

//同上面意思差不多,必须重新加载页面

//网页在缓存中的过期时间为0,一旦网页过期,必须从服务器上重新订

上面的配置不一定有效果,所以不推荐使用,最好的办法是在URL后加上一个时间戳,如下:

url = url + “&time=” + new Date();

五、如何刷新showModalDialog和showModeleDialog里的内容

在showModalDialog和showModeleDialog里是不能按F5刷新的,又不能弹出菜单。这个只能依靠javascript了,以下是相关代码:

reload...将filename.htm替换成网页的名字然后将它放到你打开的网页里,按F5就可以刷新了,注

意,这个要配合使用,不然你按下F5会弹出新窗口的。

由于在刷新上处理起来非常不方便,所以使用ajax结合showModalDialog和showModeleDialog使用是非常适合的,建议结合使用。

六、用javascript关掉showModalDialog(或showModeleDialog)打开的窗口

也要配合,不然会打开一个新的IE窗口,然后再关掉的。

七、showModalDialog和showModeleDialog数据传递技巧(例子用的是showModalDialog函数,showModeleDialog函数的用法一样)

1)父窗体向打开的窗体传递数据一般使用url参数传递

2)打开的窗体,即子窗体向父窗体进行数据传递有两种方法

(1)第一种称为“函数法”,同调用一个函数并返回值一样

可以通过在被调用的页面(子页面)使用window.returnValue来设置返回值,返回值可以是任何值或对象,调用页面(父页面)直接获取返回值即可。

//父窗体js,直接通过函数获取返回值

function openModalWindow(){

var returnValue = window.showModalDialog(“sonPage.aspx”);

alert(returnValue);

}

//子窗体js,通过window.returnvalue来设置返回值

function setReturnFatherPageValue(){

window.returnValue = true;

}

(2)第二种称为“引用法”,通过传递父窗体的引用,我们可以操作父窗体上的所有东西 要使用引用法就必须在打开子窗体时将父窗体作为一个参数传递给子窗体,而在子窗体可以通过window.dialogArguments获取到传递过来的父窗体的引用。

//父窗体js,将整个父window作为参数传递给子窗体

function openModalWindow(){

window.showModalDialog(“sonPage.aspx”, window);

}

//子窗体js,通过window.dialogArguments可以访问父window中的所有元素,它在这里代表了父window对象

function openModalWindow(){

var txt = window.dialogArguments.document.getElementByIdx(“txt”);

var lab = window.dialogArguments.document.getElementByIdx(“lab”);

txt.value = “sonPageChangedValue”;

lab.value = “isTheSame”;

}

八、控制弹出窗体的样式

1)dialogHeight:对话框高度,不小于100px

2)dialogWidth:对话框宽度。

3)dialogLeft:离屏幕左的距离。

4)dialogTop:离屏幕上的距离。

5)center:{ yes | no | 1 | 0 } : 是否居中,默认yes,但仍可以指定高度和宽度。

6)help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。

7)resizable:{yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。

8)status:{yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modele]或no[Modal]。

9)scroll:{ yes | no | 1 | 0 | on | off }:是否显示滚动条。默认为yes。

举例如下:

window.showModalDialog(“sonPage.aspx”, “”, “dialogHeight=350px;dialogwidth=410px;dialogLeft=0;dialogTop=25;help=no;resizable=no;status=no;scrollbars=no;”);

window.showModalDialog(“sonPage.aspx”, window, “dialogHeight=350px;dialogwidth=500px;help=no;scrollbars=no;”);

都可

九、窗口高度自适应,这个需要在每个弹出框加载的页面放置,比较麻烦,而且不完善,使用时请调试好

function resetDialogHeight(){

if(window.dialogArguments == null){

return;//忽略非模态窗口

}

var ua = navigator.userAgent;

var height = document.body.offsetHeight;

if(ua.lastIndexOf(“MSIE 6.0”)!=-1){

if(ua.lastIndexOf(“Windows NT 5.1”)!=-1){//alert(“xp.ie6.0”);

window.dialogHeight=(height+102)+“px”;

}

else if(ua.lastIndexOf(“Windows NT 5.0”)!=-1){//alert(“w2k.ie6.0”);window.dialogHeight=(height+49)+“px”;

}

}

else{

window.dialogHeight=height+“px”;

}

}

然后如下设置即可:

《showModalDialog窗口去缓存.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
showModalDialog窗口去缓存
点击下载文档
相关专题 窗口去边框 缓存 窗口 showmodaldialog 窗口去边框 缓存 窗口 showmodaldialog
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文