1

たくさんの iframe を含むページを作成しています。iframe 内の Web サイトには広告が含まれており、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 に答える