본문 바로가기

IT 살이/04. 기술 - 프로그래밍

[메모]Dynamically removing/ replacing an external JavaScript or CSS file

html 페이지의 부분을 컨트롤처럼( asp.net 사용자 컨트롤처럼) 독립적으로 개발할때 필요해서 메모해둔다.
메인 페이지에 이미 설정된 .css, .js 파일을 html의 부분을 별도록 디자이너가 개발할 수 있도록 할때 편리하다.

http://www.javascriptkit.com/javatutors/loadjavascriptcss2.shtml 

function removejscssfile(filename, filetype){
 var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none" //determine element type to create nodelist from
 var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none" //determine corresponding attribute to test for
 var allsuspects=document.getElementsByTagName(targetelement)
 for (var i=allsuspects.length; i>=0; i--){ //search backwards within nodelist for matching elements to remove
  if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1)
   allsuspects[i].parentNode.removeChild(allsuspects[i]) //remove element by calling parentNode.removeChild()
 }
}

removejscssfile("somescript.js", "js") //remove all occurences of "somescript.js" on page
removejscssfile("somestyle.css", "css") //remove all occurences "somestyle.css" on page