尽管在加载事件中执行,但 excanvas 拒绝在 IE8 中工作
excanvas refusing to work in IE8 despite executing in load event
if(/MSIE (\d+\.\d+); /.test(navigator.userAgent)) {
var foo = document.getElementById('herd-reports-report-table-div');
var c = document.createElement('canvas');
c.setAttribute("width",800);
c.setAttribute("height",400);
c.setAttribute("class","mapping");
foo.appendChild(c);
c = G_vmlCanvasManager.initElement(c);
} else {
var c = document.getElementById('herd-report-chart-canvas');
}
var context = c.getContext('2d');
假设我在加载页面时在一个函数中执行这段代码,我需要构建一个图表。我包含了 excanvas,但它不起作用。 IE8 在最后一行抛出错误。我得到的只是 appendChild 步骤中的 "null" 错误。或者我得到 "Object is not supported by this property or method".
我已经无计可施了。我需要这个 canvas 才能在 IE8 中工作。不知何故。
所以我最终找到了解决它 (getContext) 不起作用的原因。一些事情
- 我对包含 excanvas 的条件评论不正确。
- 除此之外,我的 chart.js 不支持对 canvas 元素调用的某些函数,因此对 excanvas.js 的更新解决了该问题。
- 我现在所有的东西都在加载,所以这个问题也解决了。
if(/MSIE (\d+\.\d+); /.test(navigator.userAgent)) {
var foo = document.getElementById('herd-reports-report-table-div');
var c = document.createElement('canvas');
c.setAttribute("width",800);
c.setAttribute("height",400);
c.setAttribute("class","mapping");
foo.appendChild(c);
c = G_vmlCanvasManager.initElement(c);
} else {
var c = document.getElementById('herd-report-chart-canvas');
}
var context = c.getContext('2d');
假设我在加载页面时在一个函数中执行这段代码,我需要构建一个图表。我包含了 excanvas,但它不起作用。 IE8 在最后一行抛出错误。我得到的只是 appendChild 步骤中的 "null" 错误。或者我得到 "Object is not supported by this property or method".
我已经无计可施了。我需要这个 canvas 才能在 IE8 中工作。不知何故。
所以我最终找到了解决它 (getContext) 不起作用的原因。一些事情
- 我对包含 excanvas 的条件评论不正确。
- 除此之外,我的 chart.js 不支持对 canvas 元素调用的某些函数,因此对 excanvas.js 的更新解决了该问题。
- 我现在所有的东西都在加载,所以这个问题也解决了。