styleSheet的动态修改
来源:互联网 发布:spark dataframe JAVA 编辑:程序博客网 时间:2024/05/23 17:55
对于styleSheet的修改,IE是可以直接操作的:
但是,根据DOM文档中对styleSheet的接口定义:
href属性是readonly的,因此FireFox等遵循标准模型的浏览器就只能取得而不能修改属性了。
为了满足动态地修改页面的shyleSheet的需求(比如:页面整体风格的动态替换等),只能通过别的途径来实现了。
我的方法其实很简单,用innerHTML就可以了:
1.将“link”定义在"span"中:
2.通过innerHTML来修改整体的link内容:
对于IE,还是使用了直接修改的方法。
document.styleSheets[1].href = "css/fontsize10.css"; //IE
但是,根据DOM文档中对styleSheet的接口定义:
// Introduced in DOM Level 2:
interface StyleSheet {
readonly attribute DOMString type;
attribute boolean disabled;
readonly attribute Node ownerNode;
readonly attribute StyleSheet parentStyleSheet;
readonly attribute DOMString href;
readonly attribute DOMString title;
readonly attribute MediaList media;
};
interface StyleSheet {
readonly attribute DOMString type;
attribute boolean disabled;
readonly attribute Node ownerNode;
readonly attribute StyleSheet parentStyleSheet;
readonly attribute DOMString href;
readonly attribute DOMString title;
readonly attribute MediaList media;
};
为了满足动态地修改页面的shyleSheet的需求(比如:页面整体风格的动态替换等),只能通过别的途径来实现了。
我的方法其实很简单,用innerHTML就可以了:
1.将“link”定义在"span"中:
<span id="globalCss"><link rel="stylesheet" type="text/css" href="css/fontsize10.css"></span>
2.通过innerHTML来修改整体的link内容:
function changeCss(type) {
var obj = document.getElementById("globalCss");
switch( type ) {
case "s":
obj.innerHTML = '<link type="text/css" rel="stylesheet" href="css/fontsize10.css">'; //FF,Opera
document.styleSheets[1].href = "css/fontsize10.css"; //IE
break;
case "m":
obj.innerHTML = '<link type="text/css" rel="stylesheet" href="css/fontsize14.css">';
document.styleSheets[1].href = "css/fontsize14.css";
break;
case "l":
obj.innerHTML = '<link type="text/css" rel="stylesheet" href="css/fontsize16.css">';
document.styleSheets[1].href = "css/fontsize16.css";
break;
}
}
var obj = document.getElementById("globalCss");
switch( type ) {
case "s":
obj.innerHTML = '<link type="text/css" rel="stylesheet" href="css/fontsize10.css">'; //FF,Opera
document.styleSheets[1].href = "css/fontsize10.css"; //IE
break;
case "m":
obj.innerHTML = '<link type="text/css" rel="stylesheet" href="css/fontsize14.css">';
document.styleSheets[1].href = "css/fontsize14.css";
break;
case "l":
obj.innerHTML = '<link type="text/css" rel="stylesheet" href="css/fontsize16.css">';
document.styleSheets[1].href = "css/fontsize16.css";
break;
}
}
对于IE,还是使用了直接修改的方法。
- styleSheet的动态修改
- 使用stylesheet修改keyframe样式
- qt4 StyleSheet的总结
- QT的stylesheet属性
- Qt StyleSheet的使用
- QMenu StyleSheet 的使用
- QMenu StyleSheet 的使用
- StyleSheet
- 关于textarea 的stylesheet设置
- QProgressBar和QScrollBar的stylesheet
- 浏览器的user agent stylesheet
- 浏览器的User Agent Stylesheet
- 浏览器的User Agent Stylesheet
- QPushButton的一些stylesheet设置
- Qt设置全局的widget的stylesheet
- Qt强大的stylesheet功能之Selector
- QT控件中的文本对齐的StyleSheet
- QT 中使用Stylesheet的注意
- 用javasript对radio选定值的判断处理
- 根治Windows 2003操作系统登录及关机麻烦(转载)
- [付费专题讲座] 第三代网站设计与推广技术解密与解谜
- 在电子商务和SaaS中酝酿未来
- Tomcat6.0 连接池(与MySQL数据库连接)的配置
- styleSheet的动态修改
- 最近怎么这么倒霉
- [转载]LCC编译器的源程序分析(12)自定义类型的声明
- 二进制、八进制、十六进制
- 如何使用JNDI连接池
- TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞
- [转载] LCC编译器的源程序分析(13)指针类型的声明
- [转载]LCC编译器的源程序分析(14)结构类型的声明
- 30岁前男人需要完成的事