2011-02-04 4 views
6

맨 위 프레임 URL에 "facebook.com"문자열이있는 경우에만 CSS 파일을 포함하도록 자바 스크립트를 사용할 수 있습니까?조건부 포함 CSS

짧은 의사 코드 :

if top.frame.url.contains("facebook.com"): 
    include("style-facebook.css"); 

답변

21

빠른 document.write를 기반 솔루션은 다음과 같습니다

<script type="text/javascript"> 
    if (/facebook\.com/.test(window.top.location.host)) { 
     document.write('<link rel="stylesheet" type="text/css" href="stylefacebook.css" />'); 
    } 
</script> 

또는 DOM 사용 :

<script type="text/javascript"> 
    if (/facebook\.com/.test(window.top.location.host)) { 
     var lnk = document.createElement('link'); 
     lnk.type='text/css'; 
     lnk.href='stylefacebook.css'; 
     lnk.rel='stylesheet'; 
     document.getElementsByTagName('head')[0].appendChild(lnk); 
    } 
</script> 

또는 jQuery로를 :

<script type="text/javascript"> 
    if (/facebook\.com/.test(window.top.location.host)) { 
     $('head:first').append('<link rel="stylesheet" type="text/css" href="stylefacebook.css" />'); 
    } 
</script> 
+1

**': 처음'** 정말? – qwertymk

+0

경우에 (- : – arnaud576875

+1

이상한 일이지만, 페이스 북 앱 ("apps.facebook.com/myapp") 내에서 window.top.location.host가 undefined를 반환하는 것으로 보입니다 :/ – Joel

2
<script type="text/javascript"> 
//<![CDATA[ 
if ("condition is satisfied") { 
    if (document.createStyleSheet) { 
     document.createStyleSheet('http://server/style-facebook.css'); 
    } else { 
     var styles = "@import url(' http://server/style-facebook.css ');"; 
     var newSS = document.createElement('link'); 
     newSS.rel = 'stylesheet'; 
     newSS.href = 'data:text/css,' + escape(styles); 
     document.getElementsByTagName("head")[0].appendChild(newSS); 
    } 
} 
//]]> 
</script>