动态加载js、css

动态加载js、css

巧了,最近刚好改造一个网页的样式,用js动态加载css文本,很方便的改造了网页的样式。而在打印的时候,看到了别人写的js,用来动态的加载js文件。其实不在于代码有多难,再于思路。记录一下。

动态加载js

其实code就是用来打印输出的code。

// 动态生成script标签
function loadScriptString(code) {
  var script = document.createElement("script"); //创建一个script标签
  script.type = "text/javascript";
  try {
    //IE浏览器认为script是特殊元素,不能再访问子节点;报错;
    script.appendChild(document.createTextNode(code));
  } catch (ex) {
    script.text = code;
  }
  document.getElementsByTagName("head")[0].appendChild(script);
}

其实,也能直接用方式

eval('alert(123);')

其实差不多。

动态加载css样式

使用了jquery,用js也能完成。但是通过动态加载css样式,可以非常方便的更改网页的样式。

(function() {
    'use strict';
    var $ = window.$;
    //动态加载css样式,达到
    $('body').append('<style>.postbox{	width: 152px;float: left;}.postbox .entry h2  {	display: none;}.postmetadata{display: none;}.detail{	display: none;}  #sidebar {display: none;}  #home-left {width: 950px;} .myprice{text-align: center;font-size: 16px;}</style>');
    $('body').append('<p id="cur_goods" style="position: fixed;top: 80px;left: 200px;background-color:#eee;line-height:30px;font-size:20px;padding:10px;border:1px solid #888;border-radius: 5px;"></p>');
    $('.postbox .entry').each(function(){
        //console.log(this);
        var title = $(this).find('h2 a').text();
        var result = title.match(/\d+(\.\d+)?元/);
        var price = (result && result[0]) || '';
        $(this).append('<div class="myprice">'+price+'</div>');
    });//append('<span>222</span>');
    $('.postbox').hover(function(dom){
        var html = $(dom.currentTarget).find('h2 a').text();
        $('#cur_goods').text(html).css({left:dom.clientX,top:dom.clientY});
    });
})();