【发布时间】:2010-10-15 12:22:21
【问题描述】:
我有一个小书签,它通过“链接”标签(外部样式表)将 CSS 样式表插入目标 DOM。
最近,这在 Amazon.com 上停止工作,仅在 Internet Explorer 中。它适用于其他网站和其他浏览器(甚至在 Amazon.com 上)。我们用来插入样式表的技术非常简单:
document.getElementsByTagName('head')[0].appendChild(s);
其中“s”是使用document.createElement 创建的链接对象。即使在亚马逊上,我也可以通过 Internet Explorer 开发人员工具栏 DOM 检查器看到该元素存在。 但是如果我在 JavaScript 中提醒 document.styleSheets 集合,它就不存在了。
作为测试,我尝试使用仅限 IE 的 document.createStyleSheet 方法将 URL 作为参数传递给我的样式表。这会引发错误:
没有足够的存储空间可用于 完成此操作
兴趣点:
-
document.createStyleSheet的文档说,如果页面上的样式表超过 31 个,但 (1) 这是一个不同的错误,并且 (2) 页面上只有 10 个外部样式表,则会引发错误。李> - 我在谷歌上搜索错误时发现了许多死胡同,唯一提出任何与样式表相关的问题的是this drupal post,但它指的是内联样式的字符限制,而不是与外部样式。
- 相同的代码,即使是
createStyleSheet调用,也适用于 IE 中的其他网站。
这对我来说已达到“完全神秘”的状态。
【问题讨论】:
标签: javascript internet-explorer dom-manipulation