Javascript动态创建 style 节点_ Div+Css教程-查字典教程网
Javascript动态创建 style 节点
Javascript动态创建 style 节点
发布时间:2016-12-27 来源:查字典编辑
摘要:有很多提供动态创建style节点的方法,但是大多数都仅限于外部的css文件。如何能使用程序生成的字符串动态创建style节点,我搞了2个小时...

有很多提供动态创建 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 个字符,长一点的就不行了,经过 SXPCrazy 提示,改成:

window.style=”body{background-color:blue;”;

document.createStyleSheet(”javascript:style”);

完美解决!!代码:

<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>

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新 Div+Css教程学习
    热门 Div+Css教程学习
    网页设计子分类