function clearCSS() { var allsuspects=document.getElementsByTagName(“link”); var css=””; for (var i=allsuspects.length; i>=0; i–){ if (allsuspects[i] && allsuspects[i].getAttribute(“href”)!=null) { css=allsuspects[i].getAttribute(“href”); if ( css.endsWith(“.css”) ) { allsuspects[i].parentNode.removeChild(allsuspects[i]); } } } }
ajax로 불러온 페이지를 현재 화면에 표시하기
content에는 HTML응답이 통으로 들어갑니다. 또한 param에는 요청시에 미리 준비하는 각정 설정항목이 들어갑니다.function updatePage(content, param) { clearCSS(); var newPage = document.createElement('div'); $(newPage).html(content); var head = document.getElementsByTagName('head'); var allsuspects=$(newPage)[0].getElementsByTagName("link"); var css=""; for (var i=allsuspects.length; i>=0; i--){ if (allsuspects[i] && allsuspects[i].getAttribute("href")!=null) { css=allsuspects[i].getAttribute("href"); if ( css.endsWith(".css") ) { $(allsuspects[i]).insertAfter('title'); } } } var newHtml = $(newPage).find("#" + param.containerId).html(); if (newHtml == null) { newHtml = $(newPage).find("body").html(); if (newHtml == null) { newHtml = content; } } $("#" + param.containerId).html(newHtml); if (param.onload) { try { if(typeof param.onload == "string") { eval(param.onload); } else { jQuery(param.onload); } } catch(e){} } if (param.gotoTop == null || param.gotoTop != false) { $('body').animate({ scrollTop: 10 }); } newPage = null; }
팁: endsWith 이용하기
String.prototype.endsWith = function(suffix) { var sub = this.length - suffix.length; return (sub >= 0) && (this.lastIndexOf(suffix) === sub); };]]>