node.js中怎么加载css

html-css024

node.js中怎么加载css,第1张

nodejs本身只能加载js,css文件只能做为文本被读取。

如果想要加载解析css,可以配合webpack,然后使用css-loader、style-loader来使用。

css-loader是用来加载解析css的,将其处理成对象,方便js进一步处理;

style-loader可以将css-loader处理的对象导入到html中,从而可以在网页中运行。

项目中需要用到动态加载CSS 文件,整理了一下,顺便融合了动态加载JS 的功能写成了一个对象,先上代码:

var dynamicLoading = {

css: function(path){

if(!path || path.length === 0){

throw new Error('argument "path" is required !')

}

var head = document.getElementsByTagName('head')[0]

var link = document.createElement('link')

link.href = path

link.rel = 'stylesheet'

link.type = 'text/css'

head.appendChild(link)

},

js: function(path){

if(!path || path.length === 0){

throw new Error('argument "path" is required !')

}

var head = document.getElementsByTagName('head')[0]

var script = document.createElement('script')

script.src = path

script.type = 'text/javascript'

head.appendChild(script)

}

}

对象包含两个完全独立的方法,分别用来加载CSS 文件和JS 文件,参数均为欲加载的文件路径。原理非常的简单:对于不同的加载文件类型创建不同的节点,然后添加各自的属性,最后扔到head 标签里面。经测试,本方法兼容各浏览器,安全、无毒、环保,是 web 开发人员工作常备代码。

下面是调用代码,异常简单:

//动态加载 CSS 文件

dynamicLoading.css("test.css")

//动态加载 JS 文件

dynamicLoading.js("test.js")

方法一,在调用文件的顶部加入下例代码:

document.write(”<script language=javascript src=’/js/import.js’></script>”)

(注:有时你引用的文件还可能需要引用其他的js,我们需要将需要的那个js文件也以同样的方法引用进来)

方法二,通过中间界面对js进行应用

就是我们可以在某个html中引用了你需要的js文件,我们可以通过拿到那个html文件的对象,然后在通过这个对象去引用js的方法。

(一般不常用)

方法三:在将下边代码放入Body中:

new_element=document.createElement(”script”)

new_element.setAttribute(”type”,”text/javascript”)

new_element.setAttribute(”src”,”import.js”)

document.body.appendChild(new_element)

我们来分析一下关键的几句代码:

首先,我们利用document.createElement(”script”)生成了一个script的标签,设置其 type属性为text/javascript,src为import.js(这里的1.js同2.js放在同一个目录,也可放在不同的目录)。最后将这个标签动态 地加入body中。如此一来,我们就可以调用到不同js文件中的方法了。

注意:<script language=”JAVASCRIPT” src=’1.js’></script>一定要放在body下面。

因为在2.js中用到了body(document.body.appendChild(new_element))

如果将引如2.js的代码放在body上面,也就是说,

进入页面后,还没有生成body就已经执行b.js里的document.body.appendChild(new_element)了。

这时body不存在就会抛JavaScript错误。