2013-11-01 85 views
1

我正在製作一個包含大量iframe的頁面,iframe中的網站包含廣告並使該頁面更易於用adblock查看,我需要顯示不同的頁面樣式表。
基本上我想要做的是..如果adblock(顯示此樣式表)else(顯示此樣式表)。更改基於Javascript的樣式表if if 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非常新,所以我很抱歉,如果代碼是可怕的。

感謝所有幫助

+0

一個簡單的提示:使用document.write()的時候,你基本上寫的網頁。所以今天有一堂課:) – user2277872

回答

3

你不應該使用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

+0

你是一個很棒的人。非常感謝你!我會在10分鐘過後立即選擇正確的答案。 – Kerblooy

+0

這個答案很好,因爲它是第一次,並告訴你如何使用jQuery,但爲了維護的目的,我會採取@Mikes代碼並將其重構爲通用函數,如函數addStyle(path){...} – Robert

+0

我其實已經開始對代碼有問題了。起初,它完美的工作,然後突然它開始默認爲「noadblock.css」,無論adblock是否安裝。 – Kerblooy

3

純JS選項:

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