在Chrome中输入时,HTML textarea不会更新

时间:2014-12-20 08:04:05

标签: javascript html css google-chrome

在包含以下代码的页面上,textarea不会使用我键入的文本进行更新,直到我点击它为止。为什么呢?



<html>

<head>
  <style>
    #canvas {
      float: left;
    }
  </style>
  <script>
    window.onload = function() {
      var canvas = document.getElementById('canvas');
      var ctx = canvas.getContext('2d');
      ctx.translate(0, 0);
    }
  </script>
</head>

<body>
  <canvas id="canvas" width=439></canvas>
  <textarea></textarea>
</body>

</html>
&#13;
&#13;
&#13;

如果我执行以下任何一项操作,我发现textarea会正确更新:

  • 将画布的宽度更改为438或更少
  • 删除ctx.translate(0,0);
  • 删除float: left;

这只发生在Chrome中,我无法在Firefox中重现。 我正在运行Chrome 39.0.2171.95和Firefox 34.0.5

1 个答案:

答案 0 :(得分:3)

这真是奇怪的行为。您可以通过向textarea添加相对定位来修复它:

&#13;
&#13;
<html>

<head>
  <style>
    #canvas {
      float: left;
    }
    textarea {
      position: relative;
    }
  </style>
  <script>
    window.onload = function() {
      var canvas = document.getElementById('canvas');
      var ctx = canvas.getContext('2d');
      ctx.translate(0, 0);
    }
  </script>
</head>

<body>
  <canvas id="canvas" width=439></canvas>
  <textarea></textarea>
</body>

</html>
&#13;
&#13;
&#13;