我正在使用 d3.js 为 Intranet 开发数据可视化页面。该页面需要在 Internet Explorer 中呈现,这会导致问题,因为所有 Intranet 页面都是以 quirks 模式呈现的。这使得 IE 在加载 d3: 时抛出错误SCRIPT5009: CSSStyleDeclaration is undefined
,从而阻止加载 d3 的其余部分。
当由其他现代浏览器或 IE9 在标准模式下呈现时,该页面按预期工作,所以我相信怪癖模式是问题所在。
其他限制,以及我尝试过的不起作用的事情:
- 该页面由我无法控制的模板系统 (IBM Cognos) 提供服务。
<meta http-equiv="X-UA-Compatible" content="IE=edge">
因此,设置不是一个选项,因为我无法修改标题。 - 在 HTTP 标头中设置等效标记也是不可能的。
- 如果我将元标记添加到
<body>
页面中我可以控制的唯一部分,IE 将忽略它。 - IE 的 F12 工具声称它处于文档怪癖模式,尽管浏览器本身处于 IE9 兼容模式。手动更改文档模式会导致 Intranet 站点重新加载页面并导航回父页面。我不知道为什么。
- 在兼容性视图设置中取消选中“在兼容性视图中显示 Intranet 站点”不会执行任何操作。
目前我可以想到两种方法来解决这个问题:要么强制 IE 以标准模式呈现,要么以某种方式重写 d3.js 以避免使用 CSSStyleDeclaration,这首先会导致崩溃。我不知道如何处理其中任何一个。