过去,我已经能够通过内联样式标签修改页面上的 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 请看这个 fiddle :
看来我的 tag.styleSheet.cssText 解决方案与使用 styleSheets 属性相同。您可以注释掉 cssText 的最后一个定义,以查看它是否按照@Teemu 的建议工作。所以现在我真的不知道为什么它在我的应用程序中不起作用。如果有人有什么想法可以破坏该功能,那就太好了。与此同时,我将修补我的应用程序。
最佳答案
IE 限制为 32 个样式表。我显然喜欢忘记这个事实,它似乎在 <link>
之上包含内联样式标签。 .
我更改了我的沙箱以打开缩小,以便将文件放在一起。
然后我的代码就起作用了。
所以看起来当你超过限制并通过 JS 插入时,你不会得到真正的错误,直到你尝试我所做的。
关于javascript - 如何更改 IE 中的 cssText?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10985495/