HTML網(wǎng)頁中無刷新的更換CSS樣式_CSS教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      系統(tǒng)原來的更換CSS模板是要重新刷新一下兒頁面的,我一直都對這個功能很不滿足,百分之九十五的功能都用AJAX無刷新的實現(xiàn)了,難道要在這個小小的更換頁面CSS模板上給用戶添點惡心嗎?于是,昨天晚上好好考慮了這個功能上的實現(xiàn),原來發(fā)現(xiàn)其實并不難,小改一下就OK了,現(xiàn)在系統(tǒng)上的模板更換是不用刷新頁面來完成的,明顯在感覺上比原來好得多了,下面談?wù)劷?jīng)驗吧:

      對于一個多頁面的網(wǎng)站來說了,CSS的更換不能只簡單的在一個頁面中調(diào)用更換CSS功能更新這個頁面頭上鏈接的CSS地址,因為它不能保證在點擊了別的頁面后新的樣式應(yīng)該到新打開的頁面中去,因此,一定要有一個全局性的變量來記錄它,我選用的是SESSION,在用戶點擊了側(cè)邊模板下拉框中的模板時,觸發(fā)了下拉框的ONCHANGE事件,執(zhí)行了一段AJAX程序,程序的功能是將用戶選中的模板信息發(fā)送給服務(wù)器,服務(wù)器接收新的模板信息后更新表示模板的SESSION值,然后向客戶端返回成功信息,客戶端則根據(jù)返回的成功信息來改變頁面樣式,注重:我在頁面頭中寫的CSS鏈接信息是這樣子的:

      <LINK id=cssLink href="css.aspx" type=text/css rel=stylesheet>

      css.aspx是一個ASP.net的頁面,它的作用只是單一的根據(jù)SESSION中的當(dāng)前CSS模板信息來轉(zhuǎn)向所應(yīng)CSS樣式表文件!這樣子的處是客戶端在接收到了服務(wù)器端成功更新SESSION的信息后剛不用考慮其它的東西,直接一句:

      document.getElementById("cssLink").href=document.getElementById("cssLink").href;

      將cssLink的href重新寫一下兒,雖然是前后一模一樣子的值,但這會激發(fā)CSS.ASPX頁面重新讀一下兒,這樣子CSS.ASPX頁面就能轉(zhuǎn)到新更新的CSS樣式表了!由于網(wǎng)站別的頁面的樣式表鏈接信息都是這樣寫的,所以每個頁面加載時都是會應(yīng)用最新更新的樣式表的,這樣子,網(wǎng)站無刷新的全局更新樣式表就實現(xiàn)了!!

      來源:模板無憂//所屬分類:CSS教程/更新時間:2008-01-05
      相關(guān)CSS教程