javascript – 无法以编程方式将CSS添加到IE
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 无法以编程方式将CSS添加到IE,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1482字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 无法以编程方式将CSS添加到IE](/upload/InfoBanner/zyjiaocheng/812/87ac2a41f39948ddbf294fca0a4ab321.jpg)
我有一个bookmarklet,它通过“link”标签(外部样式表)将CSS样式表插入到目标DOM中.
最近,这个停止在Amazon.com上,仅在Internet Explorer中工作.它适用于其他网站,以及其他浏览器(甚至在Amazon.com上).我们用来插入样式表的技术非常简单:
document.getElementsByTagName('head')[0].appendChild(s);
其中“s”是使用document.createElement创建的链接对象.即使在亚马逊上,我也会通过Internet Explorer Developer Toolbar DOM检查器看到该元素存在.但是,如果我在JavaScript中提醒document.styleSheets集合,那就不存在了.
作为测试,我尝试使用仅IE的document.createStyleSheet方法将URL作为参数传递给我的样式表.这会引发错误:
Not enough storage is available to
complete this operation
兴趣点:
> document.createStyleSheet的文档说如果页面上有超过31个样式表,则会抛出错误,但(1)它是一个不同的错误,(2)页面上只有10个外部样式表.
>我的谷歌搜索错误发现了一些死胡同,唯一提出任何样式表相关的是this drupal post,但它指的是内联样式的字符限制,而不是与外部样式相关的问题.
>相同的代码,甚至是createStyleSheet调用,都适用于IE中的其他网站.
这对我来说已经达到了“完全神秘”的地位.
解决方法:
我刚试过这个
javascript:(function(d) { d.createStyleSheet().cssText="* {color:blue !important;}" })(document);
和
javascript:(function(d) { d.createStyleSheet("http://myschemas.com/pub/clear.css") })(document);
来自amazon.com上的IE,两者都有效.
也许你需要在你的css的某些项目中添加!important以确保它们现在生效?
更新:
为您找到可能的解决方案……
javascript:(function(c) {c[c.length-1].addImport("http://myschemas.com/pub/clear.css")})(document.styleSheets);
希望它能帮到你.
内容总结
以上是互联网集市为您收集整理的javascript – 无法以编程方式将CSS添加到IE全部内容,希望文章能够帮你解决javascript – 无法以编程方式将CSS添加到IE所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。