यहाँ यह करने का "पुराना स्कूल" तरीका है, जो सभी ब्राउज़रों में उम्मीद से काम करता है। सिद्धांत रूप में, आप setAttribute
दुर्भाग्य से IE6 का लगातार उपयोग नहीं करते।
var cssId = 'myCss'; // you could encode the css path itself to generate id..
if (!document.getElementById(cssId))
{
var head = document.getElementsByTagName('head')[0];
var link = document.createElement('link');
link.id = cssId;
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'http://website.com/css/stylesheet.css';
link.media = 'all';
head.appendChild(link);
}
यह उदाहरण जांचता है कि क्या सीएसएस पहले ही जोड़ा गया था इसलिए यह केवल एक बार इसे जोड़ता है।
उस कोड को एक जावास्क्रिप्ट फ़ाइल में रखें, अंतिम-उपयोगकर्ता को केवल जावास्क्रिप्ट शामिल करें, और सुनिश्चित करें कि CSS पथ निरपेक्ष है इसलिए यह आपके सर्वर से लोड है।
VanillaJS
यहाँ एक उदाहरण है जो head
URL के फ़ाइलनाम भाग के आधार पर सीएसएस लिंक को इंजेक्ट करने के लिए सादे जावास्क्रिप्ट का उपयोग करता है :
<script type="text/javascript">
var file = location.pathname.split( "/" ).pop();
var link = document.createElement( "link" );
link.href = file.substr( 0, file.lastIndexOf( "." ) ) + ".css";
link.type = "text/css";
link.rel = "stylesheet";
link.media = "screen,print";
document.getElementsByTagName( "head" )[0].appendChild( link );
</script>
कोड को समापन head
टैग से ठीक पहले डालें और पृष्ठ को प्रस्तुत करने से पहले CSS लोड किया जाएगा। बाह्य जावास्क्रिप्ट ( .js
) फ़ाइल का उपयोग करने से फ्लैश ऑफ अनस्टाइल कंटेंट ( FOUC ) दिखाई देगा।