Kir*_*tov 5 javascript canvas chromium custom-element
我无法获取自定义画布元素的绘图上下文。
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
Run Code Online (Sandbox Code Playgroud)
是错误、遗漏还是其他原因?
PS 我正在寻找仅基于 chromium 的浏览器的解决方案。
您在这里遗漏了一些要点,在扩展本机对象时,您必须使用以下extends
选项:
canvasConstructor = document.registerElement("custom-canvas", { prototype: customCanvas, extends: 'canvas' });
Run Code Online (Sandbox Code Playgroud)
而且您无法custom type extensions
直接创建,因此您不能这样做,createElement("custom-canvas")
您必须使用该is
属性,并且为此您必须使用createElement
带有两个参数的:
canvas = document.createElement('canvas', 'custom-canvas');
//canvas in HTML will be <canvas is="custom-canvas"></canvas>
//<custom-canvas></custom-canvas> is invalid
Run Code Online (Sandbox Code Playgroud)
完成所有这些操作后,您将能够使用您的类型扩展:
ctx = canvas.getContext('2d'); //no error :)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2518 次 |
最近记录: |