过去,我已经能够通过内联样式标签修改页面上的CSS。
我知道这听起来很可怕,但这是针对自定义CSS编写的,同时使用了一种所见即所得的形式(虽然没有文字)。
我曾经做过类似的事情:tag.styleSheet.cssText = myrules;
我不知道确切的时间,但尝试此操作时,IE有时会说“无效的参数”。真正的症结在于,执行tag.innerHTML = 'body {}'
给出Unable to set value of the property 'innerHTML': object is null or undefined
,这在任何其他浏览器中都不会发生。
编辑
为了清楚起见,我使用的是内联样式标签。我不尝试使用内联样式属性。<style type="text/css" id="mytag"></style>
如何更改该标签的内部?
编辑2
请看这个小提琴:
http://jsfiddle.net/tTr5d/
看来我对tag.styleSheet.cssText的解决方案与使用styleSheets属性完全相同。您可以注释掉cssText的最后一个定义,以使其按照@Teemu的建议运行。所以现在我真的迷失了为什么它无法在我的应用程序中工作。如果有人有什么想法可以破坏该功能,那就太好了。同时,我将修补我的应用程序。
最佳答案
IE限于32个样式表。我很想忘记这个事实,它似乎在<link>
之上包括内联样式标签。
我更改了沙箱以启用缩小功能,以便将文件放在一起。
然后我的代码工作了。
这样看来,当您超过限制并通过JS插入时,直到您尝试执行我的操作后,您才会得到真正的错误。