2009-10-21 12 views
39

मुझे आश्चर्य है कि किसी पृष्ठ से सीएसएस को उतारना कैसे संभव होगा। जैसे मेरे पृष्ठ में मैंने a.css नामक एक फ़ाइल शामिल की है। अब मैं चाहता हूं कि उपयोगकर्ता थीम को बदलने में सक्षम हो, जो कि सीएसएस संचालित है, इस प्रकार वह एक.css को उतारने में सक्षम होना चाहिए और फिर मैं b.css लोड कर सकता हूं (अन्यथा वे संघर्ष करेंगे)वेबपृष्ठ से सीएसएस अनलोड करें

कोई विचार इस बारे में कैसे जाना है?

+0

मैं पता नहीं कैसे, लेकिन ExtJS ढांचे कार्यों का इस तरह प्रदान करता है, इसलिए यदि यहाँ समाधान काम नहीं करते, तुम वहाँ एक नज़र हो सकता था .... – TheHippo

उत्तर

56

लिंक तत्व ले लो और उसे निष्क्रिय

document.getElementsByTagName('link')[0].disabled = true; 
+0

एचएम, यह अच्छी तरह से काम करने लगता है। –

+0

यह बहुत अच्छा काम करता है! –

7
var firstLink = document.getElementsByTagName('link')[0]; 
firstLink.parentNode.removeChild(firstLink) 

यह पृष्ठ पर पहला लिंक तत्व हटा देगा - सुनिश्चित नहीं है कि आपका एचटीएमएल कैसे संरचित है लेकिन मुझे यकीन है कि आप इसे एक उदाहरण के रूप में उपयोग कर सकते हैं। यदि आप 'टेक्स्ट/सीएसएस' हैं और आप सही मीडिया (स्क्रीन) को लक्षित कर रहे हैं, तो आप टाइप एट्रिब्यूट को देखना चाहेंगे, या संभवतः जांच करें कि क्या href में 'css' है, यदि आपके पास अन्य लिंक तत्व हैं जो सीएसएस संदर्भ नहीं हैं ।

नोट आप तत्व को पूरी तरह हटाने के बजाय किसी गैर-मौजूदा पृष्ठ को इंगित करने के लिए href विशेषता को फिर से सेट भी कर सकते हैं।

+0

बेहतर उपयोग करने के लिए एक नहीं है लिंक टैग के लिए आईडी? – rahul

+0

लिंक तत्व पर सेट आईडी विशेषता को देखना असामान्य है, लेकिन मुझे यकीन है कि इस सटीक उद्देश्य के लिए ओपी संभवतः कम लिंकिंग और एकाधिक लिंक तत्वों से निपटना चाहता है .. अच्छा विचार। –

+0

+1 .. मेरे सामने पोस्ट किया गया है और सही चिह्नित किया जाना चाहिए .. – Xinus

24

jQuery के साथ, इस काम करता है:

$("link[href='fileToRemove.css']").remove(); 

जाहिर है, रिश्तेदार पथ और फ़ाइल का फ़ाइल नाम के साथ fileToRemove.css की जगह उतार दिया जाए।

+7

मुझे इसे फ़ाइल बनाने के लिए उद्धरणों में फ़ाइल नाम रखना पड़ा उदा। $ ("लिंक [href = 'test.css']") को हटाने()।; – guido

+6

यदि आप पथ नहीं डालना चाहते हैं, तो आप बराबर चिह्न से पहले * जोड़ सकते हैं। $ ("लिंक [href * = 'fileToRemove.css']") को हटाने()।; – Dubbo

1

विचित्र रूप से पर्याप्त, आईई और फ़ायरफ़ॉक्स अक्षम विशेषता का समर्थन करते हैं, लेकिन क्रोम, सफारी या ओपेरा नहीं। तो, यह सबसे क्रॉस ब्राउज़र होना चाहिए।

// disables all styles in the document 
function unload_stylesheet(DOMelement){ 
    DOMelement.disabled = true; 
    DOMelement.parentNode.removeChild(DOMelement); 
} 
// usage 
unload_stylesheet(document.getElementsByTagName('link')[0]); 
संबंधित मुद्दे