【发布时间】:2015-03-11 11:27:41
【问题描述】:
我无法获得自定义画布元素的绘图上下文。
var customCanvas = Object.create(HTMLCanvasElement.prototype),
canvasConstructor = document.registerElement("custom-canvas", { prototype: customCanvas }),
canvas = document.createElement("custom-canvas"),
ctx = canvas.getContext("2d"); // Uncaught TypeError: Illegal invocation
是错误、遗漏还是其他原因?
附:我正在寻找仅基于铬的浏览器的解决方案。
【问题讨论】:
-
我将您的 var 语句拆分为多个 var;这样做,我得到(对于 canvasContructor), typeError: document.registerElement is not a function。做一个快速的谷歌建议您可能需要先加载一些其他库(或者您可能应该提及您正在使用的内容,但我非常感谢您发布了看起来像是查找错误所需的最低代码)。 [参见github.com/Polymer/vulcanize/issues/110,然后引用webcomponents.org/polyfills/]。我使用的是 Firefox.closetolastest;您可能还想指定您使用的浏览器。
-
谢谢。我已经指定了浏览器。
-
好的...您在使用 Chrome 时遇到了同样的错误。尝试创建 webgl 上下文也失败了(在同一个控制台中,创建一个真实的画布并执行 realcanvas.getContext("2d") 工作,这有望排除例如 2d 上下文是否被禁用的问题)对于一些可能与安全相关的问题)
-
你试过将它添加到 dom 树中吗?
-
是的,我尝试了很多变种,但都不起作用。
标签: javascript canvas chromium custom-element