JavaScript窗口功能指南之檢查一個窗口是否存在(轉(zhuǎn))-創(chuàng)新互聯(lián)

Java

成都創(chuàng)新互聯(lián)公司公司2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站設(shè)計、成都做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元龍門做網(wǎng)站,已為上家服務(wù),為龍門各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220Script窗口功能指南之檢查一個窗口是否存在 (轉(zhuǎn))[@more@]Javascript窗口功能指南之檢查一個窗口是否存在
(作者:聽風(fēng)編譯 2001年01月19日 11:35)

  當你創(chuàng)建一個新窗口時,給open()方法的返回值分配一個變量非常重要。比如,下面的語句創(chuàng)建一個新窗口,然后立即關(guān)閉它:

  win = window.open("http://www.docjs.com/", "js");

  win.close();

Window對象
  每一個瀏覽器窗口都與一個清楚地window對象對應(yīng),所以,當你想引用當前窗口時,你應(yīng)該使用window對象。下面的語句設(shè)置當前窗口的URL:

  window.location.;

  當你在腳本程序中放置這樣一個語句時,你不需要指定window對象,因為當前窗口的存在是默認的:

  location.;

  注意,self等價于window,所以,self.close()實際上就等于window.close()。

  當你想操縱一個窗口時,你必須確認它是存在的。在為window.open()方法定義一個變量時,要將它定義為全局變量并設(shè)置為null。記住,open()方法返回新窗口的window對象。這里是一個例子:

  var win = null;

  function launchWindow() {

   win = window.open();

   // statements that refer to the new window go here

  }

  如果你想對新窗口執(zhí)行一個操作,你首先應(yīng)該檢查變量win是否為null:

  // if win exists, move the window

  if (win) win.moveTo(0, 0);

  注意,null等于false,同時任何其他合法的對象等價于true。如果win等于true,你就知道了它不是null,這意味著新窗口成功地創(chuàng)建了。

open "屬性"
現(xiàn)在你知道了瀏覽器實際創(chuàng)建了新窗口。但是它仍然存在嗎?不是必須的。你需要確認可用的窗口的確擁有一個真正的window對象。既然每個window對象對應(yīng)于一個open()方法,你就可以通過webreference.com/js/column6/object.html" target=_blank>對象探測檢查到這個方法:
  // 如果win.open存在,就移動窗口

  if (win.open) win.moveTo(0, 0);

  變量win對照窗口的window對象,所以win.open對應(yīng)window的window.open方法。注意,條件表達式是一個函數(shù)引用,不是一個函數(shù)調(diào)用。除非你確認win存在,你不應(yīng)該試圖估計win.open。下面的語句描述了正確的執(zhí)行方法:

  // if win and win.open exist, move the window

  if (win && win.open) win.moveTo(0, 0);

  由于&&是一個短操作符號,如果第一個參數(shù)(win)對應(yīng)于true,那么結(jié)果就取決于第二個數(shù)值。如果第二個參數(shù)是false,那么整個表達式結(jié)果就是false。這是一個很重要的行為,因為如果win不存在,那么表達式win.open就會產(chǎn)生一個錯誤。

closed 屬性
  由于Javascript的第一個版本,瀏覽器窗口成為一個非常困難的問題。比如,一個window對象的一些方法,例如close(),即使當窗口已經(jīng)關(guān)閉時也能被執(zhí)行,同時另外一些卻不能(比如moveTo())。但是情況會更糟。Inte.NET Explorer和Navigator經(jīng)常有不同的行為。而且,預(yù)測一定操作的結(jié)果經(jīng)常是非常困難的,即使你以前已經(jīng)做過類似的嘗試。我們將告訴你如何克服這些困難,方法就是介紹一個在交叉瀏覽器中能應(yīng)用的語句,它將檢查一個給定的窗口是否被打開。

  window.closed屬性是一個Boolean型數(shù)值,它定義了是否窗口已經(jīng)被關(guān)閉。當窗口被關(guān)閉時,window對象依然存在,并且它的closed屬性已經(jīng)被設(shè)置為true。

  使用closed來判斷打開的窗口以及仍能夠被引用(從window.open方法返回的數(shù)值)的窗口是否仍然打開著。當窗口關(guān)閉時,你不應(yīng)該試圖再操縱它。因為window.closed僅僅被Internet Explorer 4、Navigator 3 和高版本所支持,所以你應(yīng)該注意前面的版本問題。我們將使用下面的代碼:

  // if win and win.open exist, and win.closed isn't true, move the window

  if (win && win.open && !win.closed) win.moveTo(0, 0);

  Internet Explorer 3 和 Navigator 2 不支持 closed 方法,所以它在Boolean型表達式中等價于false (就像其他不存在地屬性一樣,比如 window.tomershiran)。



網(wǎng)頁標題:JavaScript窗口功能指南之檢查一個窗口是否存在(轉(zhuǎn))-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://bm7419.com/article26/hcgcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、電子商務(wù)移動網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、域名注冊商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司