2012-01-03 67 views
0

爲一個頁面編寫Userscript。它在鉻下工作。 在那個頁面上有相同的元素,在Firefox中有圓角。我想修復它,以便這些元素在Google Chrome瀏覽器中具有圓角邊緣。用於修復css的Userscript

我只想在所有鏈接的CSS樣式表中用chrome語法替換Firefox語法。 做什麼是最好的方法?

我正在使用jquery。

回答

1

這對用戶腳本來說不是一件容易的事情。

最聰明的做法是安裝Stylish之類的東西,並用它覆蓋你真正想要的樣式。


,試圖用userscript這樣做的困難是:

  1. 不能使用getComputedStyle(),因爲這只是回報分析,適用的款式。您不會在Chrome中看到「-moz」樣式,也不會在Firefox中看到「-webkit」樣式。

  2. 同樣,document.styleSheets也只顯示經過濾除外來瀏覽器特定規則的分析樣式規則。

  3. 您將不得不解析原始的CSS源文本。這是每個<style>textContent和通過遵循每個"text/css"<link>href獲得的AJAX輸入文本。

    這可能會變得棘手,甚至不要考慮使用RegEx,如果您希望解決方案強大的話。

  4. 跨域限制也將妨礙取回<link>文本,但可以通過使用GM_xmlhttpRequest()來減少此限制。

  5. 一旦原料CSS解析,那麼只有這樣,你去了解重寫選擇CSS規則,如下所示:

    Change Mozilla      To CSS3       
    ------------------------------  -------------------------- 
    -moz-border-radius-topright   border-top-right-radius  
    -moz-border-radius-bottomright  border-bottom-right-radius 
    -moz-border-radius-bottomleft  border-bottom-left-radius 
    -moz-border-radius-topleft   border-top-left-radius  
    -moz-border-radius     border-radius    
    
+0

哦,神聖的福$%#。它看起來會更容易讓站點管理員讓他知道他需要修復它。 – Hooch 2012-01-04 15:30:53