zoukankan      html  css  js  c++  java
  • js动态创建style节点(js文件中添加css)

    ie6 不能 document.createElement('style') 然后append到head标签里。所以就找到这样个好文章

    ---------------------

    有很多提供动态创建 style 节点的方法,但是大多数都仅限于外部的 css 文件。如何能使用程序生成的字符串动态创建 style 节点,我搞了2个小时。

    静态外部 css 文件语法:

    @import url(style.css);

    动态外部 css 文件加载的方法有如下:

    第一种:

    var style = document.createElement(’link’);
    style.href = ’style.css’;
    style.rel = ’stylesheet’;
    style.type = ‘text/css’;
    document.getElementsByTagName(’HEAD’).item(0).appendChild(style);

    第二种简单:

    document.createStyleSheet(style.css);

    动态的 style 节点,使用程序生成的字符串:

    var style = document.createElement(’style’);
    style.type = ‘text/css’;
    style.innerHTML=”body{ background-color:blue; }”;
    document.getElementsByTagName(’HEAD’).item(0).appendChild(style);

    很遗憾,上面的代码在 ff 里面成功,但是 ie 不支持。从老外论坛得到代码:

    var sheet = document.createStyleSheet();
    sheet.addRule(’body’,'background-color:red’);

    成功,但是很麻烦,要把字符串拆开写,长一点的写死,累的像狗一样。

    接着搜,在一个不知道什么国家的什么语言的blog上找到代码:

    document.createStyleSheet(”javascript:’body{background-color:blue;’”);

    成功,此人实在厉害,但是问题出来了,url 最大 255 个字符,长一点的就不行了,改:

    window.style=”body{background-color:blue;”;
    document.createStyleSheet(”javascript:style”);

    完美解决!!代码:

    <html> 
    <head> 
    <script> 
    function blue(){ 
    if(document.all){ 
    window.style="body{"; 
    document.createStyleSheet("javascript:style"); 
    }else{ 
    var style = document.createElement('style'); 
    style.type = 'text/css'; 
    style.innerHTML="body{ background-color:blue }"; 
    document.getElementsByTagName('HEAD').item(0).appendChild(style); 


    </script> 
    </head> 
    <body> 
    <input type="button" value="blue" onclick="blue();"/> 
    </body>

    原文  http://www.cnblogs.com/stephenykk/archive/2013/06/10/3131231.html

  • 相关阅读:
    封装了一个简单的筛选菜单控件
    安卓存储资源
    处理webp加所有的jpg到指定路径
    苹果内购
    JavaScript关于md5加密
    JavaScript关于sha1加密
    h5跳转
    python遍历文件(替换)
    python遍历文件
    安卓点击home键重启
  • 原文地址:https://www.cnblogs.com/webqiand/p/4325684.html
Copyright © 2011-2022 走看看