我有一个小书签,它通过“链接”标签(外部样式表)将 CSS 样式表插入目标 DOM。
最近,这仅在 Internet Explorer 中停止在 Amazon.com 上运行。它适用于其他网站和其他浏览器(甚至在 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 个外部样式表。 - 我对错误的谷歌搜索出现了许多死胡同,唯一一个建议与样式表相关的是这个 drupal post,但它指的是内联样式的字符限制,而不是与外部样式有关的问题。
- 相同的代码,即使是
createStyleSheet
调用,也适用于 IE 中的其他站点。
这对我来说已经达到了“完全神秘”的状态。