使用JavaScript加载页面样式和JavaScript
使用JavaScript的一种很好的技术是加载单个JavaScript文件并获取该文件以加载所需的任何其他JavaScript或CSS文档。这意味着您可以通过包含单个文件来简化页面上脚本的注入,然后再加载其他文件。这是完成此任务的方法。
基本思想是将所需的引用添加到文档的DOM结构中。假设我们要加载一个名为styles.css的CSS文件。要在运行时执行此操作,我们需要先创建一个元素并为其提供一些参数,然后再将其添加到
页面的元素。这是执行此操作所需的代码。
//创建链接元素并将其存储在变量中。 var linkElement = document.createElement("link"); //将链接元素的rel属性设置为样式表 linkElement.setAttribute("rel", "stylesheet"); //将链接元素的type属性设置为text/css linkElement.setAttribute("type", "text/css"); //将link元素的href属性设置为指向文件 linkElement.setAttribute("href", "http://www.example.com/styles.css"); //将link元素添加到文档的开头。 document.getElementsByTagName("head")[0].appendChild(linkElement);
要使用JavaScript执行相同的操作,我们只需要稍微更改一下元素和属性即可。这是如何加载名为script.js的脚本文件。
var scriptElement = document.createElement("script"); scriptElement.setAttribute("type","text/javascript"); scriptElement.setAttribute("src","http://www.example.com/script.js"); document.getElementsByTagName("head")[0].appendChild(scriptElement);
您还可以通过创建一个函数来简化此过程,该函数采用文件名和我们尝试加载的文件类型。
function loadjscssfile(filename, filetype){ if (filetype=="js"){ //如果filename是一个外部JavaScript文件 var theElement = document.createElement("script"); theElement.setAttribute("type","text/javascript"); theElement.setAttribute("src", filename); }else if(filetype=="css"){ //如果filename是一个外部CSS文件 var theElement= document.createElement("link"); theElement.setAttribute("rel", "stylesheet"); theElement.setAttribute("type", "text/css"); theElement.setAttribute("href", filename); } if (typeof element!="undefined"){ document.getElementsByTagName("head")[0].appendChild(theElement); } };
要使用此功能,请执行以下操作。
loadjscssfile("http://www.example.com/script.js","js");
最后一点是文件名必须是对该文件的绝对引用。规则是,如果您无法将URL剪切并粘贴到浏览器中并获取文件,则此方法将行不通。