有很多提供动态创建 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>
Javascript动态创建 style 节点
时间: 2024-10-06 22:41:16
Javascript动态创建 style 节点的相关文章
js动态创建style节点(js文件中添加css)
ie6 不能 document.createElement('style') 然后append到head标签里.所以就找到这样个好文章 --------------------- 有很多提供动态创建 style 节点的方法,但是大多数都仅限于外部的 css 文件.如何能使用程序生成的字符串动态创建 style 节点,我搞了2个小时. 静态外部 css 文件语法: @import url(style.css); 动态外部 css 文件加载的方法有如下: 第一种: var style = docum
前端学习代码实例-JavaScript动态创建div并写入文本
介绍一下如何利用JavaScript动态创建div元素,然后在其中写入文本. 代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>web前端开发学习扣qun:731771211
JS(原生)事件委托:为动态创建的节点绑定事件
项目开发中经常需要为动态创建的节点绑定事件, 比如需要创建一个动态列表:在li的数量非常少的时候,为每一个li绑定事件不会存在太多性能方面的问题,但是当列表非常的长,长到上百上千甚至上万的时候(假设),为每个li绑定事件就会对页面性能产生很大的影响.当有大量元素需要绑定相同事件的时候可采用事件委托,将在目标元素上要处理的事件委托给父元素或者祖先元素 优点 事件委托对于web应用程序的性能有如下几个优点: 1.需要管理的函数变少了 2.占用的内存少了 3.javascrip
【转】console.time 简单分析javascript动态添加Dom节点的性能
本文代码约定 1 el: 指的是增加直接点的DOM节点 2 totalNum: 为100000(值越大越能体现差距)指的是循环创建的DOM节点 3 for(var i=0;i<totalNum;i++){}: 我们用for来表示就好了,简写代码 如果叫你用javascript动态增加DOM节点,你有哪几种思路呢? 1 .使用innerHTML和字符串拼接 console.time("time1"); var str = ""; for{ str += &quo
console.time 简单分析javascript动态添加Dom节点的性能
Bullshit 本来想每天都更新下博客的,但是最近要考试,还有就是自己还是停留在暗自窃喜中吧(这种想法要改变).其实最近总在想,自己要怎么去管理自己的数据,每天的生活都是对自己的数据的增删查改.昨天把自己的电脑重装了,确实很多软件的存放要改地方了,之前不知道怎么去管理软件安装,所以放得乱七八糟的.说好一大堆废话之后,我最后再说一遍,管好自己的时间.数据真的比你学习东西重要. Method 本文代码约定 1 el: 指的是增加直接点的DOM节点 2 totalNum: 为100000(值越大越能
用javascript动态创建并提交表单form,表格table
<script> //helper function to create the formfunction getNewSubmitForm(){ var submitForm = document.createElement("FORM"); document.body.appendChild(submitForm); submitForm.method = "POST"; return submitForm;} //helper function t
JavaScript 动态创建标记与Ajax
JavaScript 动态创建标记与Ajax 一:简介 前面都是针对已经存在的标记进行操作.JavaScript同样可以动态创建标记并且与现有标记组合生成新的Document.同时简单的介绍了Ajax. 二:动态创建标记与组合 相关方法: /** * Some old-shcool method */ document.write("str"); var node = document.getElementById('id'); var htmlValue = node.innerHT
javascript动态创建表格:新增、删除行和列
转载:http://www.cnblogs.com/pato/archive/2009/09/02/1559068.html 利用js来动态创建表格有两种格式,appendChild()和insertRow.insertCell().两种方式其实差不多,但第一种有可能在IE上有问题,所以推荐大家使用第二种了,直接说吧. 1.inserRow()和insertCell()函数 insertRow()函数可以带参数,形式如下: insertRow(index):index从0开始 这个函数将新行添加
JavaScript动态创建HTML元素
用ajax时会用到js的动态创建HTML元素,这里简单的讲一下方法: 先分析一下HTML元素 <span style="font-size:18px;"><body></span> <font color="red" size="12">红色<p>换行</p></font> </body> 包括HTML元素的名称.属性.和内容 <名称 属性1=&