有条件包括CSS

时间:2011-02-04 16:33:08

标签: javascript

只有当顶部框架网址包含字符串“facebook.com”时,我才能使用Javascript来包含CSS文件吗?

短伪代码:

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

2 个答案:

答案 0 :(得分:23)

基于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 :(得分: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>