1.DOM不是javascript語言的一部分,而是內建在瀏覽器中的一個應用程式介面。dom的子項目包括下面幾個
window(document,history,location)
1)document子物件 links[]可以擷取整個頁面的串連(<a href=""></a>)的集合
anchors[]可以擷取整個頁面所有的錨點(<a name=""></a>) 類似的還有images
2)history對象,history對象有current,previous,next三個屬性,用來儲存曆史列表中的url,但是在瀏覽器中不能正常訪問,history提供了3個方法
go(參數) 產生為整數正數表示前進次數 負數表示後退次數,back(),forward().
補充:為了搞清楚,瀏覽器為什麼能夠進行後退和前進,以及一些因前進和後退導致問題的根源,做了一些測試得出如下結論:
a)瀏覽器自身能夠記錄訪問的曆史,此處的訪問曆史僅僅是一個地址
b)前進後退操作時,瀏覽器會訪問自身記錄的url地址
c)在訪問曆史的url時,如果伺服器側沒有強制禁用緩衝,那麼瀏覽器將不會想伺服器發送請求,否則瀏覽器將向伺服器發送新的http請求。
由此可以解決一些登入後退出 然後後退仍能看到使用者資訊,以及 由使用ajax的頁面在調到新頁面後再回退回來導致的一些指令碼錯誤。
方法很簡單 就是在伺服器測禁用緩衝(no cache,no store),從而回退時 伺服器會受到請求便可以做出相應的處理。 (如有不妥之處 請大家多多指教 給我留言)
3)location對象,這個對象中包含了很多視窗的當前url網址的資訊,最重要的是修改href屬性可以重新置放到新的頁面。,其他的一些protocol,port,等,
其中:search表示查詢部分 指?之後的參數 如aid=3; hash:表示anchor名稱 如#anchor 這兩個應該比較實用
location的方法reload(bool),就是重新整理,如果參數為true 則無論緩衝與否都會強制重新整理
replace(url),其實這個還是比較實用,不僅能夠實現設定location的功能,而且還不影響記錄。(這個就比較不錯了 如a頁面到b,b頁面用這個replace(c)開啟了c,這是點擊後退會發現到了a)-