[英]JavaScript / HTML5 - Fetch Canvas Object Text?
我正在使用javascript / html并尝试从已在页面上创建的画布对象中获取文本。
我想在页面加载后单击一个按钮,然后从画布对象中查看文本。 这是我正在尝试的代码。
var CheckCanvas = document.getElementById(className);
var CheckContext = CheckCanvas.getContext('2d');
alert( 'btn text: ' + CheckContext.Text );
我也尝试获取'fillText'属性,但我无法从对象中获取文本。
任何帮助将非常感激。 我确信它很简单,但我找不到解决方案。
谢谢。
您无法从画布对象获取文本,因为它是图像。但是,您可以在绘制之前将文本存储在变量中,然后稍后输出。
var text = "Hello";
conxtext.fillText(text, 100, 100);
alert("value: " + text);
好的。 首先,没有办法使用当前可用的canvas方法(或者我不知道它)。 一种方法是编写自己的类,但这是一项很多工作。 我建议您使用像kineticjs或fabricjs这样的画布库,这样可以很容易地实现这样的功能。 这是一个如何使用fabricjs来做到这一点的例子。
<canvas id="canvas1"></canvas>
<button id="addtext">Add Text </button>
<button id="retText">Retrive Text </button>
var canvas = new fabric.Canvas('canvas1');
document.getElementById('addtext').onclick = function() {
var textVar = new fabric.Text("Hello World!");
textVar.left=100;
textVar.top=100;
canvas.add(textVar);
};
document.getElementById('retText').onclick = function() {
var activeObject = canvas.getActiveObject();
if (activeObject && activeObject.type === 'text') {
alert(activeObject.text);
}
else
{
alert ("No object selected or Selected object not text");
}
};
CheckContext.fillText
有效,但没有名为Text
属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.