在Web開發(fā)中,我們常常使用Ajax技術(shù)來實(shí)現(xiàn)局部刷新,減少頁面的刷新次數(shù),提升用戶體驗(yàn)。但是,在這個(gè)過程中,我們有時(shí)候需要重新加載CSS文件。那么,在Ajax完成操作之后,如何重新加載CSS呢?
其實(shí),重新加載CSS的方法非常簡單,我們只需要在Ajax的回調(diào)函數(shù)中動(dòng)態(tài)創(chuàng)建一個(gè)link標(biāo)簽即可。具體操作如下:
function ajaxFunction() { // 創(chuàng)建XMLHttpRequest對象 var xmlHttp; if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } else { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } // 發(fā)送Ajax請求 xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { // Ajax操作完成后,重新加載CSS文件 var head = document.getElementsByTagName("head")[0]; var link = document.createElement("link"); link.rel = "stylesheet"; link.type = "text/css"; link.href = "style.css"; head.appendChild(link); } } xmlHttp.open("GET", "example.php", true); xmlHttp.send(); }
上述代碼中,我們在Ajax的回調(diào)函數(shù)中創(chuàng)建了一個(gè)link標(biāo)簽,并把它添加到head標(biāo)簽中。link標(biāo)簽的href屬性指向我們需要重新加載的CSS文件,rel屬性值為“stylesheet”,type屬性值為“text/css”。
有些開發(fā)者可能會(huì)使用document.write來實(shí)現(xiàn)動(dòng)態(tài)添加CSS文件,但是這樣做并不安全,容易引發(fā)一些錯(cuò)誤,因此建議使用createElement方法來實(shí)現(xiàn)CSS文件的動(dòng)態(tài)添加。