5

जावास्क्रिप्ट के माध्यम से ब्राउज़र में किसी भी सीएसएस छद्म वर्ग के समर्थन का पता लगाने की अवधारणा क्या है? वास्तव में, मैं यह जांचना चाहता हूं कि उपयोगकर्ता का ब्राउज़र :checked छद्म-वर्ग का समर्थन करता है या नहीं, क्योंकि मैंने चेकबॉक्स के साथ कुछ सीएसएस-पॉपअप बनाए हैं और पुराने ब्राउज़र के लिए फ़ॉलबैक करने की आवश्यकता है।ब्राउज़र का समर्थन निर्दिष्ट सीएसएस छद्म-वर्ग का पता लगाने के लिए कैसे पता लगाएं?

उत्तर: मैं पहले से ही एक Modernizr "Additional Tests" में परीक्षण सीएसएस चयनकर्ताओं की method कार्यान्वित पाया हूँ।

+1

[आधुनिकizr] (http://www.modernizr.com/) इस तरह की कई चीजों का पता लगाता है। –

+0

मुझे मॉडर्निजर के बारे में पता है, लेकिन इसमें सीएसएस 3 छद्म-वर्ग समर्थन के लिए परीक्षण नहीं हैं, केवल छद्म तत्व जैसे ':: पहले', आदि – Raiden

उत्तर

4

आप बस देख सकते हैं कि छद्म वर्ग के साथ अपनी शैली लागू किया गया था।

कुछ इस तरह: यदि नियम अमान्य है http://jsfiddle.net/qPmT2/1/

+4

एक आधुनिकizr ["अतिरिक्त टेस्ट"] (https://github.com/Modernizr/Modernizr/wiki) में सीएसएस चयनकर्ताओं का परीक्षण करने के पहले से ही [विधि] (https://gist.github.com/441842) लागू किया गया है। ओह, भगवान, यह कोर में क्यों नहीं है? – Raiden

+0

कार्य समाधान, लेकिन थोड़ा बदसूरत – franzlorenzon

1

आप जावास्क्रिप्ट का उपयोग करने के साथ ठीक कर रहे हैं, तो आप का पता लगाने छोड़ सकते हैं और सही शिम के लिए जा सकते हैं: Selectivizr

+3

बेहतर होगा चयनकर्ता का उपयोग न करें, क्योंकि परफॉर्मेंस पार्स के कारण डिक्रिसिंग कर रहा है पृष्ठ प्रस्तुत करने से पहले सीएसएस। – andychups

0

stylesheet.insertRule(rule, index) विधि त्रुटि फेंक देते हैं। तो हम इसका इस्तेमाल कर सकते हैं।

var supportPseudo = function(){ 
    var ss = document.styleSheets[0]; 
    if(!ss){ 
     var el = document.createElement('style'); 
     document.head.appendChild(el); 
     ss = document.styleSheets[0]; 
     document.head.removeChild(el); 
    } 
    return function (pseudoClass){ 
     try{ 
      if(!(/^:/).test(pseudoClass)){ 
       pseudoClass = ':'+pseudoClass; 
      } 
      ss.insertRule('html'+pseudoClass+'{}',0); 
      ss.deleteRule(0); 
      return true; 
     }catch(e){ 
      return false; 
     } 
    }; 
}(); 


//test 
supportPseudo(':hover'); //true 
supportPseudo(':before'); //true 
supportPseudo(':hello'); //false 
supportPseudo(':world'); //false 
संबंधित मुद्दे