2015-08-28 140 views
0

我正在爲包括Highcharts的儀表板設置動態主題設置。 目標是根據爲特定用戶設置的主題更改圖表顏色。使用CSS設置Highcharts顏色主題

我想出了一個適用於此的工作解決方案,但這隻適用於本地主機。如果CSS文件位於遠程服務器上,則不起作用。

function getStyle(className) { 
    var cssFileName = 'chart_theme_1.css'; 
    styleSheetsCount = document.styleSheets.length; 
    for(j = 0; j < styleSheetsCount ; j++){ 
    var href = document.styleSheets[j].href; 
    var a = href.split('/'); 
    if(a[a.length -1] == cssFileName){ 
     classes = document.styleSheets[j].rules || document.styleSheets[j].cssRules; 
     break; 
    } 
    } 

    for (var x = 0; x < classes.length; x++) { 
     if (classes[x].selectorText == className) { 
      return classes[x].style.color ; 
     } 
    } 
} 

$(document).ready(function(){ 
    colors = [];  
    for (var i = 1; i < 8; i++) { 
    colors.push(getStyle('.highChartsColor'+i)); 
    } 
    Highcharts.setOptions({ 
     colors: colors, 
     style: { 
      fontFamily: 'Arial' 
     } 
    }); 
}); 
+0

您是通過調試器來查看是否正確獲取樣式表? – raduation

+0

是的。當我使用調試器檢查時,href('document.stylesheet [j])'是正確的。但是,'rules'和'cssRules'設置爲'undefined' – Karthik

+0

你可以jsfiddle,http://jsfiddle.net – dreamweiver

回答

0

請確定您正在給出正確的.css文件路徑。

它可能是:在/ var/www/html等/ < .folder名稱>/< .css文件>

請檢查你的CSS文件的路徑。

+0

您能否詳細說明您的答案,並添加關於您提供的解決方案的更多描述? – abarisone