Html5 canvas chrome mobile上的画布问题

Html5 canvas chrome mobile上的画布问题,html5-canvas,rendering,Html5 Canvas,Rendering,我正在编写一个用于在移动设备上捕获签名的组件。 我的代码在iOS和Android上都运行良好。但并非在所有设备上 例如,我在Galaxy Tab 2 7.0上进行测试,一切正常。 我测试了Android浏览器、Chrome、FF、Opera和Maxthon。没有问题 现在在我的Galaxy Note 2上进行测试,我想知道为什么它在Chrome中不起作用。没有错误。我的javascript运行良好。但输入不会呈现到我的画布上。 在安卓浏览器中,它可以正常工作 有什么想法吗 这是我的处理程序: v

我正在编写一个用于在移动设备上捕获签名的组件。 我的代码在iOS和Android上都运行良好。但并非在所有设备上

例如,我在Galaxy Tab 2 7.0上进行测试,一切正常。 我测试了Android浏览器、Chrome、FF、Opera和Maxthon。没有问题

现在在我的Galaxy Note 2上进行测试,我想知道为什么它在Chrome中不起作用。没有错误。我的javascript运行良好。但输入不会呈现到我的画布上。 在安卓浏览器中,它可以正常工作

有什么想法吗

这是我的处理程序:

var canvas = document.getElementById('canvas');
var startedPainting = false;

canvas.addEventListener("mousedown", handleStart, false);
canvas.addEventListener("mousemove", handleMove, false);
canvas.addEventListener("mouseup", handleEnd, false);
canvas.addEventListener("touchstart", handleStart, false);
canvas.addEventListener("touchmove", handleMove, false);
canvas.addEventListener("touchend", handleEnd, false);

function handleStart(evt) {
      evt.preventDefault();

      startedPainting = true;
      var el = $("#canvas").get(0);
      var ctx = el.getContext("2d");
      ctx.lineWidth = 3;
      var touches = evt.changedTouches;

      if (touches) {
        ctx.moveTo(touches[0].pageX - el.offsetLeft, touches[0].pageY - el.offsetTop);
        for (var i=0; i<touches.length; i++) {
            ctx.lineTo(touches[i].pageX - el.offsetLeft, touches[i].pageY - el.offsetTop);
          }
      }
      else{
            ctx.moveTo(evt.pageX - el.offsetLeft, evt.pageY - el.offsetTop);
            ctx.lineTo(evt.pageX - el.offsetLeft, evt.pageY - el.offsetTop);
      }           
      ctx.stroke();
    }


function handleMove(evt) {
      evt.preventDefault();

      if (startedPainting) {
          var el = $("#canvas").get(0);
          var ctx = el.getContext("2d");
          ctx.lineWidth = 3;
          var touches = evt.changedTouches;

          if (touches) {
            for (var i=0; i<touches.length; i++) {           
                ctx.lineTo(touches[i].pageX - el.offsetLeft, touches[i].pageY - el.offsetTop);
              }
          }
          else{
                ctx.lineTo(evt.pageX - el.offsetLeft, evt.pageY - el.offsetTop);
          }
          ctx.stroke();       
      }
    }

function handleEnd(evt) {
      evt.preventDefault();
      startedPainting = false;
      var el = $("#canvas").get(0);
      var ctx = el.getContext("2d");
      ctx.lineWidth = 3;
      var touches = evt.changedTouches;

      if (touches) {
            for (var i=0; i<touches.length; i++) {
                ctx.lineTo(touches[i].pageX - el.offsetLeft, touches[i].pageY - el.offsetTop);
              }
      }
      else{
        ctx.lineTo(evt.pageX - el.offsetLeft, evt.pageY - el.offsetTop);
      }
      ctx.stroke();       
    }
var canvas=document.getElementById('canvas');
var startedPainting=false;
canvas.addEventListener(“mousedown”,handleStart,false);
canvas.addEventListener(“mousemove”,handleMove,false);
canvas.addEventListener(“mouseup”,handleEnd,false);
canvas.addEventListener(“touchstart”,handleStart,false);
canvas.addEventListener(“touchmove”,handleMove,false);
canvas.addEventListener(“touchend”,handleEnd,false);
功能手柄(evt){
evt.preventDefault();
开始绘画=真实;
var el=$(“#画布”).get(0);
var ctx=el.getContext(“2d”);
ctx.lineWidth=3;
var Touchs=evt.ChangedTouchs;
如果(触摸){
ctx.moveTo(touchs[0].pageX-el.offsetLeft,touchs[0].pageY-el.offsetTop);

对于(var i=0;i来说,这似乎是一个GPU驱动程序问题。谷歌已经意识到了这个问题,并且已经在铬问题数据库上讨论了案例231082

看起来问题已经解决,目前(截至2013年6月26日)处于测试阶段