1

我正在制作一个包含大量 iframe 的页面,iframe 中的网站中有广告,并且为了让使用 adblock 的人更容易看到该页面,我需要显示不同的样式表。
基本上我想做的是.. if adblock(显示此样式表) else(显示此样式表)。

我有代码可以检测是否存在 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 非常陌生,所以如果代码很糟糕,我深表歉意。

谢谢你的帮助

4

2 回答 2

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' )
    }
});

请注意:链接元素应放在<head>部分中。在 w3c 中阅读更多内容。

于 2013-11-01T13:52:41.510 回答
4

纯 JS 选项:

var el = document.createElement("link");
el.type = "text/css";
el.rel = "stylesheet";
el.href = "style.css";
document.getElementsByTagName("head")[0].appendChild(el);
于 2013-11-01T13:55:49.380 回答