Javascript动态创建 style 节点

2016-02-19 23:24 11 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享Javascript动态创建 style 节点教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - Web开发 】

有很多提供动态创建 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);

第二种简单:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

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 个字符,长一点的就不行了,经过 SXPCrazy 提示,改成:

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

完美解决!!代码:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

html
head
script
function blue(){
if(document.all){
window.style="body{background-color:blue;";
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
/html

来源:http://www.tulaoshi.com/n/20160219/1629863.html

延伸阅读
CAD教程之动态块创建   很多人都知道,CAD2012中新增了动态块功能,通过此功能,用户在操作时可以轻松地更改图形中的动态块参照,还可以通过自定义夹点或自定义特性来操作动态块参照中的几何图形。那么,动态块是如何创建的呢?下面请看我们的CAD教程。 图1 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块...
标签: Web开发
1.创建链接 script language="javascript" var o = document.body; //创建链接 function createA(url,text) {     var a = document.createElement("a");     a.href = url;     a.innerHTML = text;     a.style.color = "red...
按照类型名称动态创建对象 作者:死猫 提交者:eastvc 发布日期:2003-9-20 10:22:27 原文出处:http://www.cpphelp.net/issue/classbyname.html 1 引言 我的一个实际项目中,由于希望通过一致的接口控制各种型号的设备,并且可以方便的随时扩充,以便将来支持更多的型号。因此,必须在运行时指定设备的型号。 为了使应用程序可以透明的...
BCB中提供了大量的VCL组件,有时难免要在程序中动态创建组件,VCL是用Object Pascal写的,她与C++语言还是存在着一些不同点的,要掌握正确的方法,不防我们先来看一下栈(stack)与堆(heap)的关系。 栈(stack)是存放函数的所有动态局部变量及函数调用和返回的有关信息的一块内存。栈的内存管理严格遵循先进后出的顺序,这一点正是实现函...
标签: Web开发
使用JavaScript可以创建自己的对象。虽然JavaScript内部和浏览器本身的功能已十分强大,但JavaScript还是提供了创建一个新对象的方法。使其不必像超文本标识语言那样,求于或其它多媒体工具,就能完成许多复杂的工作。 在JavaScript中创建一个新的对象是十分简单的。首先它必须定义一个对象,而后再为该对象创建一个实例。这个实例就...

经验教程

405

收藏

68
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部