İşte umarım tüm tarayıcılarda çalışan "eski okul" yolu. Teorik olarak, setAttributene yazık ki IE6 tutarlı bir şekilde desteklemez kullanırsınız .
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);
}
Bu örnek, CSS'nin önceden eklenmiş olup olmadığını kontrol eder, böylece yalnızca bir kez ekler.
Bu kodu bir javascript dosyasına koyun, son kullanıcının basitçe javascript eklemesini sağlayın ve CSS yolunun mutlak olduğundan emin olun, böylece sunucularınızdan yüklenir.
VanillaJS
headURL'nin dosya adı bölümüne göre öğeye bir CSS bağlantısı enjekte etmek için düz JavaScript kullanan bir örnek :
<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>
Kodu kapanış headetiketinden hemen önce ekleyin; sayfa oluşturulmadan önce CSS yüklenecektir. Harici bir JavaScript ( .js) dosyası kullanmak , stilsiz içerik ( FOUC ) içeren bir Flash'ın görünmesine neden olur.