这是这样做的“老派”方法,希望可以在所有浏览器上使用。从理论上讲,
setAttribute不幸的是,您将使用IE6并不能始终支持它。
var cssId = 'myCss'; // you could enpre 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是否已添加,因此仅添加一次。
将代码放入javascript文件中,让最终用户仅包含javascript,并确保CSS路径是绝对路径,以便从服务器中加载它。
VanillaJS
这是一个使用普通Javascript将
head基于URL的文件名部分的CSS链接注入元素的示例:
<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。使用外部Javascript(
.js)文件将导致显示未样式化内容FOUC的Flash
。



