2015-04-24 69 views
4

我需要一些幫助來診斷Chrome中的CSS問題。我甚至不知道如何診斷這個問題。我只是想知道下一步應該是什麼。替代樣式表不適用於Chrome

就解決方案而言,我已經檢查了this question,但它不是很清楚。我也試過this solution(禁用所有樣式,然後啓用一個),但它不工作。我不認爲this question適用,因爲我們不從外部域拉,所以它不是一個跨域問題。

問題:

Chrome似乎忽略了我們的替代樣式表定義。在我們的應用程序中,我們使用備用樣式表和一個Javascript例程來更改背景顏色。此代碼正在工作,並且在Firefox和IE中仍爲,但在某些時候它停止在Chrome中工作。樣式表被定義如下:

<link type="text/css" rel="stylesheet" title="white" property="stylesheet" href="/myapp/css/layer.css" /> 
    <link type="text/css" rel="alternate stylesheet" title="silver" property="stylesheet" href="/myapp/css/medium.css" /> 
    <link type="text/css" rel="alternate stylesheet" title="grey" property="stylesheet" href="/myapp/css/dark.css" /> 
    <link type="text/css" rel="alternate stylesheet" title="beige" property="stylesheet" href="/myapp/css/beige.css" /> 
    <link type="text/css" rel="alternate stylesheet" title="green" property="stylesheet" href="/myapp/css/green.css" /> 

原體定義這裏:

body { 
    font-family: Arial, Helvetica, sans-serif; 
    font-size: 12px; 
    color: #282828; 
    height: 100%; 
    background: #fff url(../images/header-bg.jpg) center top no-repeat; 
    min-width: 1024px; 
} 

應該與被覆蓋(例如)此,在交替的樣式表中的一個:

body { 
    background: url("../images/header-bg-dark.jpg") no-repeat center top #919194; 
} 

但這不適用於Chrome。我嘗試了以下內容:通過JS代碼究其根源,並驗證

1)的CSS片得到啓用/禁用正確:

 if (document.styleSheets.item(i).href.indexOf("medium") > -1) { 
      document.styleSheets.item(i).disabled = false; 
     } else if (document.styleSheets.item(i).href.indexOf("dark") > -1 
       || document.styleSheets.item(i).href.indexOf("beige") > -1 
       || document.styleSheets.item(i).href.indexOf("green") > -1) { 
      document.styleSheets.item(i).disabled = true; 
     } 

2)看着計算的風格,只有基地風格正在顯示 - 這就像Chrome忽略了其他風格。

3)嘗試從rel="alternate stylesheet"部分定義中刪除alternate

4)試圖從基本定義(layer.css)中刪除title

任何人有任何其他想法?如果我找到解決方案,我會發布它。

回答

4

答案原來是刪除「標題」屬性,並刪除樣式表定義中的「備用」部分。所以樣式現在鏈接如下:

<link type="text/css" rel="stylesheet" property="stylesheet" href="<c:url value="/css/medium.css"/>" /> 
<link type="text/css" rel="stylesheet" property="stylesheet" href="<c:url value="/css/dark.css"/>" /> 
<link type="text/css" rel="stylesheet" property="stylesheet" href="<c:url value="/css/beige.css"/>" /> 
<link type="text/css" rel="stylesheet" property="stylesheet" href="<c:url value="/css/green.css"/>" /> 

不知道爲什麼原始的定義:沒有工作,但在新的工作,可以在打開及關閉與JS,這是我們所需要的。

+0

這不幸也阻止了Firefox允許用戶在View-> Page Style下選擇他們想要應用的樣式表。但我確認這是必要的,以獲得鉻通過JavaScript切換樣式表。 – Gsxr1k

相關問題