如何在一个JS脚本中加载多个CSS文件
How to load multiple CSS files within a JS script
下面我有一个嵌套的if语句,它根据用户的设备加载某个CSS文件。我也有一个样式表切换器,需要CSS文件加载,如果一个特定的设备正在使用
if(navigator.userAgent.match(/Windows NT/i)){
if(window.innerWidth < 816){document.write('<link rel="stylesheet" type="text/css" href="ui/tablet/css/site.css">');}
else{document.write('<link rel="stylesheet" type="text/css" href="ui/root/css/site.css title="default"><link rel="alternate stylesheet" type="text/css" href=""ui/root/css/reverse.css" title="reverse"/>');}}
问题在于最后一行。当一个页面加载时,我试图"加载"不写多个CSS文件。我需要有多个CSS文件加载,因为我有一个样式表切换器,它取决于CSS文件基本上是预加载。
我显然不能使用document。像上面的代码一样使用多个CSS文件编写。我也不应该用document。无论如何都要写,因为如果用户确实更改了样式表,在刷新时它还是会写一个旧的CSS文件。
我已经试着尽可能的清晰,但是我基本上在这里使用许多不同的设备,也允许用户有机会改变样式表。我知道这很冒险!
我可以更改文档吗?写到document。load?或者是否没有可能根据用户设备加载多个样式表?
谢谢你,约翰。
这样做会有帮助:
<>之前var cssFilesArr = ["first.css", "second.css"];函数loadcssfile (cssFilesArr) {For (var x = 0;x & lt;cssFilesArr.length;x + +) {var fileref = document.createElement("链接");fileref。setAttribute("rel"、"样式表");fileref。setAttribute("类型"、"文本/css");fileref。setAttribute("href",cssFilesArr [x]);document.getElementsByTagName("头")[0].appendChild (fileref);}}loadcssfile(cssFilesArr)////动态加载并添加此css文件我认为你可以在文档中添加样式表<元素:
var head = document.getElementsByTagName('head')[0];
var files = ['/path/to/file1.css', '/path/to/file2.css', '/path/to/file3.css'];
for (var i = 0, l = files.length; i < l; i++) {
var link = document.createElement('link');
link.href = files[i];
link.rel = "stylesheet";
link.type = "text/css";
head.appendChild(link);
}
你可以为你的样式添加一个id属性,像这样:
<link id="css" rel="stylesheet" type="text/css" href="css1.css">
如果你想切换,你可以使用:
document.getElementById("css").href="css2.css";
相关文章:
- Joomla异步脚本加载jdoc头
- 将自定义脚本加载到Vue.js组件中
- 延迟加载 脚本加载和/或执行
- 脚本加载问题
- I'当我试图将java脚本加载到web视图中时,我得到了一个空白屏幕
- 脚本加载脚本广告
- 当我有一个脚本数组时,如何等待脚本加载
- 将Dropbox API脚本加载到chrome扩展时出错
- 异步脚本加载
- 一旦第三方脚本加载失败,立即运行一段JavaScript
- 有没有办法阻止脚本加载两次?JavaScript
- 无法使用 AJAX 将脚本加载为纯文本
- 我怎样才能说服WebStorm我的用户脚本加载jQuery
- 需要JS脚本加载顺序
- 处理不同设备的页面中的脚本加载
- 显示加载 gif,直到脚本加载完毕
- jQuery Mobile pageinit,脚本加载和其他东西
- IE11 脚本加载不起作用(有时)
- 有条件地将内容脚本加载到 Safari 扩展中,就像在 FF/Chrome 中一样
- 如何在Chrome开发工具中找到以下脚本加载时间线