第一: window.open 是window對(duì)象的一種方法,而window.location是window對(duì)象的一種屬性。
window.open是用來(lái)打開一個(gè)新窗口的函數(shù),window.location是你對(duì)當(dāng)前瀏覽器窗口URL地址對(duì)象的參考。
第二: window.open不一定是打開一個(gè)新窗口,只要有窗口的名稱和window.open中第二個(gè)參數(shù)中的一樣就會(huì)將這個(gè)窗口替換,
用這個(gè)特性的話可以在iframe和frame中來(lái)代替location.href。
例如:
和 的效果一樣
第三:在給按鈕、表格、單元格、下拉列表和DIV等做鏈接時(shí)一般都要用Javascript來(lái)完成,和做普通鏈接一樣,可能我們需要讓鏈接頁(yè)面在當(dāng)前窗口打開,
也可能需要在新窗口打開,這時(shí)我們就可以使用下面兩項(xiàng)之一來(lái)完成:
window.open 用來(lái)打開新窗口
window.location 用來(lái)替換當(dāng)前頁(yè),也就是重新定位當(dāng)前頁(yè)
可以用以下來(lái)個(gè)實(shí)例來(lái)測(cè)試一下。
第四:window.location或window.open如何指定target? 這是一個(gè)經(jīng)常遇到的問題,特別是在用frame框架的時(shí)候 解決辦法:
window.location 改為 top.location 即可在頂部鏈接到指定頁(yè) 或 window.open("你的網(wǎng)址","_top");
第五:window.open 用來(lái)打開新窗口 window.location 用來(lái)替換當(dāng)前頁(yè),也就是重新定位當(dāng)前頁(yè)
用戶不能改變document.location(因?yàn)檫@是當(dāng)前顯示文檔的位置)。
window.location本身也是一個(gè)對(duì)象。
但是,可以用window.location改變當(dāng)前文檔 (用其它文檔取代當(dāng)前文檔),而document.location不是對(duì)象。
服務(wù)器重定向后有可能使document.url變動(dòng),但window.location.href指的永遠(yuǎn)是訪問該網(wǎng)頁(yè)時(shí)用的URL.
大多數(shù)情況下,document.location和location.href是相同的,但是,當(dāng)存在服務(wù)器重定向時(shí),document.location包含的是已經(jīng)裝載的URL,
而location.href包含的則是原始請(qǐng)求的文檔的URL.
第六:window.open()是可以在一個(gè)網(wǎng)站上打開另外的一個(gè)網(wǎng)站的地址
而window.location()是只能在一個(gè)網(wǎng)站中打開本網(wǎng)站的網(wǎng)頁(yè)
window.open()詳解
因?yàn)橹且欢蝚avascripts代碼,所以它們應(yīng)該放在之間。是對(duì)一些版本低的瀏覽器起作用,
在這些老瀏覽器中不會(huì)將標(biāo)簽中的代碼作為文本顯示出來(lái)。要養(yǎng)成這個(gè)好習(xí)慣啊。
window.open ('page.html') 用于控制彈出新的窗口page.html,如果page.html不與主窗口在同一路徑下,前面應(yīng)寫明路徑,絕對(duì)路徑(http://)和相對(duì)路徑(../)均可。用單引號(hào)和雙引號(hào)都可以,
只是不要混用。這一段代碼可以加入HTML的任意位置,
參數(shù)解釋:
window.open 彈出新窗口的命令;
'page.html' 彈出窗口的文件名;
'newwindow' 彈出窗口的名字(不是文件名),非必須,可用空''代替;
height=100 窗口高度;
width=400 窗口寬度;
top=0 窗口距離屏幕上方的象素值;
left=0 窗口距離屏幕左側(cè)的象素值;
toolbar=no 是否顯示工具欄,yes為顯示;
menubar,scrollbars 表示菜單欄和滾動(dòng)欄。
resizable=no 是否允許改變窗口大小,yes為允許;
location=no 是否顯示地址欄,yes為允許;
status=no 是否顯示狀態(tài)欄內(nèi)的信息(通常是文件已經(jīng)打開),yes為允許;
用函數(shù)控制彈出窗口:
下面是一個(gè)完整的代碼。
這里定義了一個(gè)函數(shù)openwin(),函數(shù)內(nèi)容就是打開一個(gè)窗口。在調(diào)用它之前沒有任何用途。怎么調(diào)用呢?
方法一:
同時(shí)彈出兩個(gè)窗口
對(duì)源代碼稍微改動(dòng)一下:
為避免彈出的2個(gè)窗口覆蓋,用top和left控制一下彈出的位置不要相互覆蓋即可 。最后用上面說(shuō)過(guò)的四種方法調(diào)用即可。
注意:2個(gè)窗口的name(newwindows和newwindow2)不要相同,或者干脆全部為空。
【主窗口打開文件1.htm,同時(shí)彈出小窗口page.html】
如下代碼加入主窗口
【彈出的窗口之定時(shí)關(guān)閉控制】
下面我們?cè)賹?duì)彈出的窗口進(jìn)行一些控制,效果就更好了。如果我們?cè)賹⒁恍《?nbsp;代碼加入彈出的頁(yè)面(注意是加入page.html的HTML中,可不是主頁(yè)面中,
否則 ...),讓它10秒后自動(dòng)關(guān)閉是不是更酷了?首先,將如下代碼加入page.html文件的