html動(dòng)態(tài)加載css樣式和js腳本

字號(hào):


    點(diǎn)評(píng):這篇文章主要介紹了html動(dòng)態(tài)加載css樣式和js腳本示例,需要的朋友可以參考下
    一、動(dòng)態(tài)加載腳本
    當(dāng)網(wǎng)站需求變大,腳本的需求也逐步變大。我們就不得不引入太多的 JS 腳本而降低了整站的性能,所以就出現(xiàn)了動(dòng)態(tài)腳本的概念,在適時(shí)的時(shí)候加載相應(yīng)的腳本。
    比如:我們想在需要檢測(cè)瀏覽器的時(shí)候,再引入檢測(cè)文件。
    代碼如下:
    <script type="text/javascript">
    window.onload = function(){
    alert(typeof BrowserDetect);
    }
    var flag = true; //設(shè)置 true 再加載
    if (flag) {
    loadScript('browserdetect.js'); //設(shè)置加載的 js
    }
    function loadScript(url) {
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = url;
    //document.head.appendChild(script); //document.head 表示<head>
    document.getElementsByTagName('head')[0].appendChild(script);
    }
    </script>動(dòng)態(tài)執(zhí)行 js</p> <p>
    <script type="text/javascript">
    window.onload = function(){
    }
    var flag = true; //設(shè)置 true 再加載
    if (flag) {
    var script = document.createElement('script');
    script.type = 'text/javascript';
    var text = document.createTextNode("alert('Lee')"); //IE6,7,8 瀏覽器報(bào)錯(cuò)
    script.appendChild(text);
    document.getElementsByTagName('head')[0].appendChild(script);
    }
    </script>IE 6,7,8瀏覽器認(rèn)為 script 是特殊元素,不能在訪問子節(jié)點(diǎn)。為了兼容,可以使用 text屬性來代替。</p> <p>
    <script type="text/javascript">
    window.onload = function(){
    }
    var flag = true; //設(shè)置 true 再加載
    if (flag) {
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.text = "alert('Lee')";
    script.appendChild(text);
    document.getElementsByTagName('head')[0].appendChild(script);
    }
    </script>需要做所有瀏覽器兼容
    二、動(dòng)態(tài)加載樣式
    為了動(dòng)態(tài)的加載樣式表,比如切換網(wǎng)站皮膚。樣式表有兩種方式進(jìn)行加載,一種是<link>標(biāo)簽,一種是<style>標(biāo)簽。
    動(dòng)態(tài)執(zhí)行 link
    代碼如下:
    var flag = true;
    if (flag) {
    loadStyles('basic.css');
    }
    function loadStyles(url) {
    var link = document.createElement('link');link.rel = 'stylesheet';
    link.type = 'text/css';
    link.href = url;
    document.getElementsByTagName('head')[0].appendChild(link);
    }
    動(dòng)態(tài)執(zhí)行 style
    代碼如下:
    <script type="text/javascript">
    var flag = true;
    if (flag) {
    var style = document.createElement('style');
    style.type = 'text/css';
    //var box= document.createTextNode('#box{background:red}');// IE6,7,8 不支持
    //style.appendChild(box);
    document.getElementsByTagName('head')[0].appendChild(style);
    insertRule(document.styleSheets[0], '#box', 'background:red', 0);
    }
    function insertRule(sheet, selectorText, cssText, position) {
    //如果是非 IE6,7,8
    if (sheet.insertRule) {
    sheet.insertRule(selectorText + "{" + cssText + "}", position);
    //如果是 IE6,7,8
    } else if (sheet.addRule) {
    sheet.addRule(selectorText, cssText, position);
    }
    }
    </script>