当前位置: 移动技术网 > IT编程>开发语言>JavaScript > JavaScript---动态加载script和style样式

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

2019年05月12日  | 移动技术网IT编程  | 我要评论

一个网页里面的内容理解为一个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);
}

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网