• Javascript动态创建 style 节点


    有很多提供动态创建 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{ }”;
    document.getElementsByTagName(’HEAD’).item(0).appendChild(style); 
    很遗憾,上面的代码在 ff 里面成功,但是 ie 不支持。从老外论坛得到代码: 
    var sheet = document.createStyleSheet();
    sheet.addRule(’body’,' 
    成功,但是很麻烦,要把字符串拆开写,长一点的写死。 
    接着搜,在一个不知道什么国家的什么语言的 blog 上找到代码: 
    document.createStyleSheet(”javascript:’body{’”); 
    成功,此人实在厉害,但是问题出来了,url 最大 255 个字符,长一点的就不行了,经过 SXPCrazy 提示,改成: 
    window.style=”body{”;
    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{  
    document.getElementsByTagName('HEAD').item(0).appendChild(style); 


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

  • 相关阅读:
    UVA
    题目1008:最短路径问题
    怎样使用安卓变声电话软件实现边变声边通话
    Map接口及其子类
    oracle slient静默安装并配置数据库及仅安装数据库不配置数据库shell
    oracle db_unnqiue_name db_name sid_name instance_name service_name
    oracle 配置监听
    oralce dubugs
    sqlplus conn远程连接
    centos 修改shm
  • 原文地址:https://www.cnblogs.com/zhishaofei/p/4807080.html
Copyright © 2020-2023  润新知