IE 8和7在动态添加样式表时出错 [英] IE 8 and 7 bug when dynamically adding a stylesheet

查看:107
本文介绍了IE 8和7在动态添加样式表时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码

var style = document.createElement('style');
style.setAttribute("type", "text/css");
if (style.textContent) { // FF, Safari
    style.textContent = this.arg.css;
} else {
    style.innerHTML = this.arg.css;// FF, IE
}
document.getElementsByTagName('head')[0].appendChild(style);

这在所有浏览器(也是IE 9)中正常工作,但对于IE7和IE8,我得到以下错误

This works fine in all browsers (also IE 9) but for IE7 and IE8, I get the following error


SCRIPT600:未知的运行时错误

SCRIPT600: Unknown runtime error

错误指向行

    style.innerHTML = this.arg.css;// FF, IE

推荐答案

你可以这样尝试

var style = document.createElement('style');
var text = this.arg.css;
style.setAttribute("type", "text/css");
if (style.styleSheet) {   // for IE
    style.styleSheet.cssText = text;
} else {                // others
    var textnode = document.createTextNode(text);
    style.appendChild(textnode);
}
var h = document.getElementsByTagName('head')[0];
h.appendChild(style);

这篇关于IE 8和7在动态添加样式表时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆