本章我們將講解簡單的windows和frames操作,包括打開彈出視窗(popup),在frame之間進行操作,以及找到網頁的滾動位置。
很多人認為視窗(window)操作就像是黑暗面,他們認為window是用戶GUI的一部分,而不是文檔(document),而JavaScript是document腳本語言,所以它與視窗操作沒有任何的關係。
我也會認同這種說法,但是我知道這種觀點有它的局限性。如果你的顧客要求你做一些特殊的事情,你又不能勸說他改變主意,或者你可以自由的拒絕這項工作。在這章的內容中,我們將結合使用中可能出現的問題講解一些實用的window和frame操作技巧。
注意,有一些限制,視窗腳本的一些變數是非常不好處理的。我們不會涉及一些難纏的操作,比如關閉或者修改用戶的默認視窗,在螢幕中移動視窗或者打開全屏或者無邊框視窗。這些操作都搞壞了JavaScript的名聲。
這一章的大部分內容我們都會密切關注視窗的操作方法。包括不同流覽器,不同的方法,其中大部分方法都在JavaScript標準化之前已經開始使用了。
我們將處理很多code branch,但是我們會通過使用object detection避免討厭的流覽器嗅探。
使用彈出視窗
你是否應該使用彈出視窗?我得到的經過深思熟慮的答案就是:儘量避免使用。彈出視窗因為推銷商的使用而獲得了很不好的名聲,但是請求式的彈出視窗可以是良好使用的壁壘。
我不會說彈出視窗永遠都是不合適的,但是我會說它們很少是合適的。但是有的時候,用彈出視窗來打開一個新的視窗是最好的解決方法:網路調查可能就是一個例子,因為採取這種方式可能會讓內容看起來更加接近人;DHTML遊戲也是一個例子,因為查看視窗的大小應該有所限制。
我將通過討論彈出視窗帶來的問題而證明我的觀點,之後我會給你一個儘量避免這些問題的使用方法。
彈出視窗怎麼了?
常見的彈出視窗初夏的一個最主要的問題就是它們常常忽略了用戶的需求——它們只滿足設計者的需要。結果?我們都見過:
伴隨鏈結彈出的視窗,雖然那些鏈結在腳本不可用的時候沒有任何的用處.
沒有狀態欄的彈出視窗。你無法清楚文檔是已經下載了還是已經安裝了,或者,還是正在下載過程中,等等……
彈出視窗讓用戶無法調整視窗的大小,以及沒有捲軸的彈出視窗,用戶無法查看可能溢在視窗外的內容
無邊框的視窗或者是滿屏顯示的彈出視窗。
這些問題不僅僅是使用的問題,還有可接受性的問題。比如,讀者可能在沒有通知有新視窗要打開的前提下就有新視窗突然打開了,如果他們想要返回流覽器歷史那肯定會引起麻煩,那些全屏打開的視窗也會給讀者帶來麻煩:我們可能都習慣了用任務欄來監視打開窗戶,但是如果打開的是個全屏的視窗,我們可能就不知道該如何操作了。
如果你計畫使用彈出視窗,你就應該避免這類問題,並且注意這些問題帶給讀者的影響,你應該讓彈出視窗更加友好。
同樣,應該記住,從開發者的角度來講,彈出視窗並不一定會工作:大多數的流覽器都有阻止彈出視窗選項,在那樣的情況下,這種阻止會讓用戶對你的彈出視窗不會有任何的反應。
在腳本不支援的情況下你可以這樣做:確保彈出視窗失敗的情況下會有替補的方法。或者,你可以讓編碼打開一個視窗,然後查看它的關閉屬性,看看是否起效。
但是這些不能保證適用於所有的流覽器以及所有的彈出視窗攔截設置,在這樣的情況下,你最好避免使用彈出視窗。
請看下一節--<如何儘量避免問題?>
推薦給同仁
您想要瞭解更多的免費小竅門以便提升你的網站排名嗎?
請馬上聯繫我們網站管理員:
MSN: chenlinwu@cmmail.com
Email: info@rank-ad.com