Rumah > Artikel > hujung hadapan web > Ringkasan kaedah tetingkap pop timbul JavaScript_kemahiran javascript
Contoh dalam artikel ini meringkaskan kaedah tetingkap pop timbul JavaScript yang biasa digunakan untuk perbandingan dan rujukan anda. Kaedah terperinci adalah seperti berikut:
1. Muat semula halaman web tanpa menggesa:
Adakah anda perasan bahawa apabila memuat semula beberapa halaman web, tetingkap gesaan akan muncul. Klik "OK" untuk memuat semula.
Sesetengah halaman tidak akan menggesa dan akan dimuat semula secara langsung tanpa muncul tetingkap gesaan.
Jika halaman itu tidak mempunyai borang,
Tetingkap gesaan tidak akan muncul
Jika halaman tersebut mempunyai borang,
a)0a49d8328ba1b67146975e617cc81251
Tetingkap gesaan akan muncul
b)d589f3b0d54c249962cd56950ba5a9cf
Tidak akan muncul
window.location.reload();Gunakan tetingkap pop timbul yang muncul oleh window.open() untuk memuat semula tetingkap induk
window.opener.location.reload()Gunakan window.showDialog untuk muncul tetingkap modal
window.dialogArguments.location.reload();
kaedah window.open():
window.open() persekitaran yang disokong: JavaScript1.0 /JScript1.0 /Nav2 /IE3 /Opera3
Sintaks asas:
window.open(pageURL,name,parameters)Antaranya:
nama ialah pemegang tingkap kanak-kanak
parameter ialah parameter tetingkap (setiap parameter dipisahkan dengan koma)
Contoh:
<SCRIPT> <!-- window.open ('page.html','newwindow','height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no') //写成一行 --> </SCRIPT>Selepas skrip dijalankan, page.html akan dibuka dalam tetingkap baharu dengan lebar 100, ketinggian 400, 0 piksel dari bahagian atas skrin, 0 piksel dari kiri skrin, tiada bar alat , tiada bar menu dan tiada Bar tatal, tidak boleh diubah saiz, tiada bar alamat, tiada bar status.
Contoh di atas melibatkan beberapa parameter yang biasa digunakan Selain itu, terdapat banyak parameter lain, sila lihat 4.
Antaranya, ya/tidak juga boleh menggunakan 1/0 nilai piksel adalah nilai tertentu, piksel unit.
Parameter | Julat nilai |
|.
bergantung |. ya/tidak |. Sama ada hendak ditutup serentak dengan tetingkap induk
direktori |. ya/tidak |. Sama ada bar direktori Nav2 dan 3 kelihatan
tinggi |. nilai piksel |
kekunci pintas |. ya/tidak |. Tetapkan kekunci pintas keluar selamat dalam tetingkap tanpa bar menu
innerHeight |. Ketinggian piksel dokumen dalam tetingkap
innerWidth |. Nilai piksel |
lokasi |. ya/tidak |
bar menu |. ya/tidak |
nilai piksel luar |. Tetapkan ketinggian piksel tetingkap (termasuk sempadan hiasan)
outerWidth |. nilai piksel |
boleh diubah saiz |. ya/tidak |
screenX |. nilai piksel |. Panjang tetingkap dalam piksel dari tepi kiri skrin
screenY |. nilai piksel |. Panjang tetingkap dalam piksel dari sempadan atas skrin
bar skrol |. ya/tidak |
bar tajuk |. sama ada bar tajuk tetingkap kelihatan
bar alat |. ya/tidak |. Sama ada bar alat tetingkap kelihatan
Lebar |. Nilai piksel |
z-lihat |. ya/tidak |. Sama ada tetingkap terapung di atas tetingkap lain selepas ia diaktifkan
kaedah window.showModalDialog:
Pengenalan asas:
showModalDialog() (IE 4 disokong)
function ShowDialog(url) { var iWidth=300; //窗口宽度 var iHeight=200;//窗口高度 var iTop=(window.screen.height-iHeight)/2; var iLeft=(window.screen.width-iWidth)/2; window.open(url,"Detail","Scrollbars=no,Toolbar=no,Location=no,Direction=no,Resizeable=no, Width="+iWidth+" ,Height="+iHeight+",top="+iTop+",left="+iLeft); }Kaedah window.showModelessDialog() digunakan untuk mencipta kotak dialog bukan modal yang memaparkan kandungan HTML.
Cara menggunakan:
参数说明:
sURL--
必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
vArguments--
可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures--
可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
1.dialogHeight :对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
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[ Modeless]或no[Modal]。
9.scroll:{ yes | no | 1 | 0 | on | off }:指明对话框是否显示滚动条。默认为yes。
下面几个属性是用在HTA中的,在一般的网页中一般不使用。
10.dialogHide:{ yes | no | 1 | 0 | on | off }:在打印或者打印预览时对话框是否隐藏。默认为no。
11.edge:{ sunken | raised }:指明对话框的边框样式。默认为raised。
12.unadorned:{ yes | no | 1 | 0 | on | off }:默认为no。
参数传递:
(1).要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如:
-------------------------------
parent.htm页面:
<script> var obj = new Object(); obj.name="jb51"; 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.jb51.com"; </script>
例子:
function ShowDialog(url) { var iWidth=300; //窗口宽度 var iHeight=200;//窗口高度 var iTop=(window.screen.height-iHeight)/2; var iLeft=(window.screen.width-iWidth)/2; window.showModalDialog(url,window,"dialogHeight: "+iHeight+"px; dialogWidth: "+iWidth+"px; dialogTop: "+iTop+"; dialogLeft: "+iLeft+"; resizable: no; status: no;scroll:no"); }
注意这里的第二个参数,window
4.模式窗口数据不刷新(缓存)问题
在jsp页面加入如下语句
<% response.setHeader("Pragma","No-Cache"); response.setHeader("Cache-Control","No-Cache"); response.setDateHeader("Expires", 0); %>
5.模式窗口中,链接弹出新窗口问题:
◎_blank,在新浏览器窗口中打开链接文件。
◎_parent,将链接的文件载入含有该链接框架的父框架集或父窗口中。如果含有该链接的框架不是嵌套的,则在浏览器全屏窗口中载入链接的文件,就象_self参数一样。
◎_self,在同一框架或窗口中打开所链接的文档。此参数为默认值,通常不用指定。
◎_top,在当前的整个浏览器窗口中打开所链接的文档,因而会删除所有框架。
在9c3bca370b5104690d9ef395f2c5f8d1和6c04bd5ca3fcae76e30b72ad730ca86d间加入50e4aea961872c99fc549888c41dc48a
6.无提示关闭页面的方法:
function CloseWin(){ var ua = navigator.userAgent; var ie = navigator.appName=="Microsoft Internet Explorer"?true:false; if(ie){ var IEversion = parseFloat(ua.substring(ua.indexOf("MSIE ")+5,ua.indexOf(";",ua.indexOf("MSIE ")))); if( IEversion< 5.5){ var str = ''; document.body.insertAdjacentHTML("beforeEnd", str); document.all.noTipClose.Click(); } else { window.opener =null; window.close(); } }else{ window.close() } }
感兴趣的读者可以调试一下上述方法,相信会给大家带来一定的启发与帮助。