Erst mal Danke für die Ermutigung. Die kann ich im Moment gut gebrauchen ;-) . Ich denke auch, dass eine solche Funktion auch für Andere nützlich sein kann. Hier zunächst mal der Canvas-Code (Ob es hübsch ist, überlasse ich Ihnen. Funktionell reicht es aus für das, was ich durchführen möchte):
<!DOCTYPE html>
<html><head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <title>Malbox</title>
        <style type="text/css" media="screen">
            body { background:#e6f2ff; color:#FFF; text-align:left; font-size:90%; font-family:Verdana, Geneva, Arial, Helvetica, sans-serif; margin:0; padding:0; }
            canvas { cursor:crosshair; background:#FFF; margin:16px; }
            p { margin:16px; }
      canvas { border: 1px solid black; }
    </style>
    </head><body><canvas id="Malflaeche" width="300" height="300" style="position: absolute;"></canvas>
<script>
(function () {
var el = document.getElementById('Malflaeche');
var ctx = el.getContext('2d');
var isDrawing;
el.onmousedown = function(e) {
  isDrawing = true;
  ctx.lineWidth = 3;
  ctx.lineJoin = ctx.lineCap = 'round';
   ctx.shadowBlur = 5;
   ctx.shadowOffsetX =-5
    ctx.shadowOffsetX =-5
  ctx.shadowColor = 'rgb(0, 0, 0)';
  ctx.moveTo(e.clientX, e.clientY);
};
el.onmousemove = function(e) {
  if (isDrawing) {
    ctx.lineTo(e.clientX, e.clientY);
    ctx.stroke();
  }
};
el.onmouseup = function() {
  isDrawing = false;
};
})();
 var canvas = document.getElementById('malflaeche');
canvas.toBlob(function(blob) {
  var newImg = document.createElement('img'),
      url = URL.createObjectURL(blob);
  newImg.onload = function() {
    // no longer need to read the blob so it's revoked
    URL.revokeObjectURL(url);
  };
  newImg.src = url;
  document.body.appendChild(newImg);
});
    </script>
</body></html>
Leider habe ich ihn auf der SoSCi Survey-Seite zwar platzieren können, aber das Malen funktioniert dort nicht und der Rahmen sitzt noch "schief".
Im Backend: 
https://www.soscisurvey.de/admin/index.php?o=Questionnaire&a=edit&id=361668
Im Frontend: 
https://www.soscisurvey.de/preferLU2019/?q=base&admin&debug&page=13&l=ger
Da ich noch nix malen kann, kann ich auch noch nichts aufnehmen.
Ob der von Ihnen angegebene Zusatzcode bei der Frage hier 
https://www.soscisurvey.de/admin/index.php?o=question§ion=939596&question=6434038 sitzen muss, oder auf der Seite ist mir auch noch unklar.
Würde mich freuen, wenn Sie mir weiterhelfen könnten.
**Ach, beinah hätte ich es vergessen, die Fehlermeldung derzeit ist:**
TypeError: canvas is null[Weitere Informationen] preferLU2019:448:1
<anonym>
https://www.soscisurvey.de/preferLU2019/:448:1