一. Window 對象
Window 對象是 JavaScript 層級中的頂層對象。
Window 對象代表一個瀏覽器窗口或一個框架。
Window 對象會在 <body> 或 <frameset> 每次出現時被自動創建。
二.
open() 方法用於打開一個新的瀏覽器窗口或查找一個已命名的窗口。
三.
window.open(URL,name,features,replace)
參數 | 描述 |
---|---|
URL | 一個可選的字符串,聲明了要在新窗口中顯示的文檔的 URL。如果省略了這個參數,或者它的值是空字符串,那么新窗口就不會顯示任何文檔。 |
name | 一個可選的字符串,該字符串是一個由逗號分隔的特征列表,其中包括數字、字母和下划線,該字符聲明了新窗口的名稱。這個名稱可以用作標記 <a> 和 <form> 的屬性 target 的值。如果該參數指定了一個已經存在的窗口,那么 open() 方法就不再創建一個新窗口,而只是返回對指定窗口的引用。在這種情況下,features 將被忽略。 |
features | 一個可選的字符串,聲明了新窗口要顯示的標准瀏覽器的特征。如果省略該參數,新窗口將具有所有標准特征。在窗口特征這個表格中,我們對該字符串的格式進行了詳細的說明。 |
replace
|
一個可選的布爾值。規定了裝載到窗口的 URL 是在窗口的瀏覽歷史中創建一個新條目,還是替換瀏覽歷史中的當前條目。支持下面的值:
|
四.窗口特征(Window Features)
channelmode=yes|no|1|0 | 是否使用劇院模式顯示窗口。默認為 no。 |
directories=yes|no|1|0 | 是否添加目錄按鈕。默認為 yes。 |
fullscreen=yes|no|1|0 | 是否使用全屏模式顯示瀏覽器。默認是 no。處於全屏模式的窗口必須同時處於劇院模式。 |
height=pixels | 窗口文檔顯示區的高度。以像素計。 |
left=pixels | 窗口的 x 坐標。以像素計。 |
location=yes|no|1|0 | 是否顯示地址字段。默認是 yes。 |
menubar=yes|no|1|0 | 是否顯示菜單欄。默認是 yes。 |
resizable=yes|no|1|0 | 窗口是否可調節尺寸。默認是 yes。 |
scrollbars=yes|no|1|0 | 是否顯示滾動條。默認是 yes。 |
status=yes|no|1|0 | 是否添加狀態欄。默認是 yes。 |
titlebar=yes|no|1|0 | 是否顯示標題欄。默認是 yes。 |
toolbar=yes|no|1|0 | 是否顯示瀏覽器的工具欄。默認是 yes。 |
top=pixels | 窗口的 y 坐標。 |
width=pixels | 窗口的文檔顯示區的寬度。以像素計。 |
五.
注意:
window.open(URL,name,features,replace)
如果name使用名字已經存在,那么不會創建一個新的窗口,而是會返回對已經存在的窗口的引用。
否則,則創建一個新的窗口。
我就是沒有注意這點,網頁全屏時候,花了很多時間。
六.具體業務功能
6.1 打開一個全屏的窗口
<script type="text/javascript">
window.open("http://google.com/",'新開googleWin',"fullscreen=1")
</script>
6.2 使本頁面全屏
解決方案:先打開一個全屏的目標窗口,然后關閉本窗口。
代碼:
<script type="text/javascript">
var url=document.location.href; //獲得本窗口屬性名
newWin=window.open(url,'','fullscreen=1,scrollbars=0');
window.opener=null;//出掉關閉時候的提示窗口
window.open('','_self'); //ie7
window.close();
</script>
注意:如果你在open方法中指定第二個參數,並為他賦予特定的值話,那么第二次使用上面方法,將無法創建新的窗口,因為系統默認的返回已經存在窗口的索引。
按ESC退出全屏
<script type="text/javascript">
// Esc退出全屏
function exitFullScreenMe()
{
var esc=window.event.keyCode;
if(esc==27) //判斷是不是按的Esc鍵,27表示Esc鍵的keyCode.
{
var url=document.location.href;
win=window.open(url,'','fullscreen=0,directories=1,location=1,menubar=1,resizable=1,scrollbars=1,status=1,titlebar=1,toolbar=1'); //讓新打開的窗口全屏
window.opener=null;//出掉關閉時候的提示窗口
window.open('','_self');//ie7
window.close(); //先關閉老的窗口
}
}
document.onkeydown = exitFullScreenMe ; //當onkeydown(按鍵觸發) 事件發生時調用hotkey函數
</script>
6.3同時彈出兩個窗口
<script type="text/javascript">
window.open("http://google.com/",'新開googleWin1',"height=300, width=300, top=0, left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n o, status=no")
window.open("http://google.com/",'新開googleWin2',"height=300, width=300, top=0, left=400,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n o, status=no")
</script>
注意:(1)窗口的名字不能相同,但可以都為空;
(2)要注意兩個窗口的布局,是否符合你的要求。
6.4
第一次進入頁面才彈出窗口.cookie解決
首先,將如下代碼加入主頁面HTML的<HEAD>區:
<script>
function openwin(){
window.open("page.html","","width=200,height=200")
}
function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1)
end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}
function loadpopup(){
if (get_cookie('popped')==''){
openwin()
document.cookie="popped=yes"
}
}
</script>
然后,用<body onload="loadpopup()">(注意不是openwin而是loadpop啊!)替換主頁面中原有的<BODY>這一句即可。你可以試着刷新一下這個頁面或重新進 入該頁面,窗口再也不會彈出了。