JavaScript---动态加载script和style样式

Roy 2019-05-12 01:46124 阅读

一个网页里面的内容理解为一个XML或者说网页本身也就是一个XML文档,XML文档都有很特殊的象征:"标签"也叫"节点"。

一个基本的网页格式

<!DOCTYPE />
<head></head>
<body><body />

这些是最基本的形态,但是其实它省略了最外面的一个标签<document>

<document>
      <!DOCTYPE />
      <head></head>
      <body><body/>
</document>

这其实才是它的本来面目(默认把document标签给省略了)。document.body 或者docment.head,无论你的什么操作只要是有关于这个<document>标签的你跟可以利用document获得,因为它是根。网页文档中任何存在在<document>标签里面都是可以获得的,所有的节点其实都是已经被分类好,但它们的nodeType和nodeName不一样而已。

代码写法一:

function loadScript(url, callback) {
    var script = document.createElement("script");
    script.type = "text/javascript";
    if (typeof (callback) != "undefined") {
        if (script.readyState) {
            script.onreadystatechange = function () {
                if (script.readyState == "loaded" || script.readyState == "complete") {
                    script.onreadystatechange = null;
                    callback();
                }
            };
        } else {
            script.onload = function () {
                callback();
            };
        }
    };
    script.src = url;
    document.body.appendChild(script);
}

写法二:

function loadScript(){
  var script=document.createElement("script");
  script.type="text/javascript";
  script.src=null 
try{
 script.appendChild(document.createTextNode("//code"));     //javascript内容是利用createTextNode创建的(不过IE不认这个)
}catch(ex){
script.text="//code";                                                                //IE认为SCRIPT节点是个特殊的节点所有有个特殊的text属性
}
  document.body.appendChild(script);   /*兼容IE*/
}

 

动态加载样式:

// 动态记载样式
function loadStyle(){
  var style=document.createElement("style"); 
  style.type="text/css";  //参考网页上的style样式,他怎么写你怎么写
  style.href="style.css";
try{
   style .appendChild(document.createTextNode("//style code")); 
}catch(ex){
   style.styleSheet.styleText="//style code";    /*兼容IE*/        //IE也认为style节点是个特殊的节点所有有个特殊的styleSheet.styleText属性 - -
}
 
 var head=document.getElementByTagName("head")[0];        
  head.appchild(link);
}

 

回复数量: 0
暂无评论~~
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!