在script
标签内可以通过document.write('<style>your style</style>')
直接写入样式定义,而在外部js文件里面,这种方式是被浏览器阻止的,解决方法如下:
- 创建一个Style元素并添加到DOM里面
var style = document.createElement('style');
document.body.appendChild(style);
if (style.styleSheet) {
style.styleSheet.cssText = 'css样式定义';
} else {
style.appendChild(document.createTextNode('css样式定义'));
}
一般到第一步就可以了,如果无效,可尝试以下方法。
- 插入样式定义
changeStyles(style.sheet, '.back', 'background-image:url(xxx.jpg)');
- changeStyle具体如下:
function changeStyles(sheet, selector, rules) {
if ("insertRule" in sheet) {
sheet.insertRule(selector + "{" + rules + "}", 0);
} else if ("addRule" in sheet) {
sheet.addRule(selector, rules, 0);
}
}
**注意事项:**不能取已有的style标签然后对其应用如上方法,经测试是无效的。