我有一个使用Chart.js
+的Angular应用程序,它需要在Firefox 68中运行。
Chart.js
+在其代码中使用ResizeObserver
,这是特定Firefox版本不支持的。
所以,当我尝试在Firefox中加载我的图表时,我得到以下错误:
ReferenceError: "ResizeObserver is not defined">
在其他浏览器或更新版本的Firefox中可以正常工作。
经过一些研究,我读到我可以为ResizeObserver
安装一个填料,许多人建议如下:https://github.com/juggle/resize-observer
所以我通过输入npm i @juggle/resize-observer
将它安装在我的项目中,然后将它添加到polyfill.ts
文件中:
import '@juggle/resize-observer';
import 'zone.js/dist/zone';
但是错误仍然存在。我错过什么了吗?
提前感谢。
看看其他人是如何修复它的,似乎你仍然需要在使用chart.js做任何事情之前将其注册到浏览器,以便它可以使用它:
import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer';
if (typeof window !== 'undefined') {
window.ResizeObserver = window.ResizeObserver || ResizeObserverPolyfill;
}
来自:https://github.com/jenkins-infra/plugin-site/pull/714
对旧浏览器的支持已经被取消了一段时间,所以你需要一个polyfill来保持chartJS的工作。如果你的浏览器很旧,无法导入,你可以从polyfill.io中添加一个脚本。这是相当沉重的,但这将是一个容易的修复,你可以很容易地添加其他多边形,如果你需要。
<script type="application/javascript" src="https://polyfill.io/v3/polyfill.min.js?features=ResizeObserver"></script>