根据Javascript if else语句更改样式表

时间:2013-11-01 13:50:32

标签: javascript css if-statement

我正在制作一个包含很多iframe的网页,iframe中的网站上有广告,为了让网页更容易被adblock看到,我需要显示不同的样式表。
基本上我想做的是..如果adblock(显示这个样式表)别的(显示这个样式表)。

我有代码正在检测是否存在adblock,但是当我尝试执行if else语句时...整个页面都是空白的。这是代码:

<script>
(function(){
    if($("#fakead").css('display')=="none")
    {
        document.write("<link href='css/adblock.css' rel='stylesheet' type='text/css'>")
    }
    else
    { 
        document.write("<link href='css/noadblock.css' rel='stylesheet' type='text/css'>")
    }
});
</script>

我对Javascript非常陌生,所以如果代码很糟糕我会道歉。

感谢您的帮助

2 个答案:

答案 0 :(得分:4)

您不应使用document.write方法。正如我看到你使用jQuery,所以在jQuery中你可以这样做:

$( function() {
    if($("#fakead").css('display')=="none") {
        $("<link href='css/adblock.css' rel='stylesheet' type='text/css'/>").appendTo( 'head' );
    } else { 
        $("<link href='css/noadblock.css' rel='stylesheet' type='text/css'/>").appendTo( 'head' )
    }
});

请注意:link元素应放在<head>部分。 w3c Read more

答案 1 :(得分:3)

纯JS选项:

var el = document.createElement("link");
el.type = "text/css";
el.rel = "stylesheet";
el.href = "style.css";
document.getElementsByTagName("head")[0].appendChild(el);