Estoy usando un plugin llamado html2canvas para convertir html en mi página en un elemento canvas. Luego quiero guardar ese lienzo como una imagen. Por desgracia sigo encontrar el error en el título. He probado con diferentes nombres de variables, con diferentes html, etc. Pero mantener el encuentro con el mismo error. Aquí está mi código (activa en un clic de botón):

JS

function generate(){
        html2canvas($('#b2_1'), {
            onrendered: function(canvas) {
                canvas.setAttribute("id", "canvas");
                document.body.appendChild(canvas);
            }
        });//this all works, the canvas appears as expected

        var myCanvas = $(document).find('#canvas');
        myCanvas.css("margin-left", "50px");//this was to test I was selecting the right element, the canvas moves
        var myImg = myCanvas.toDataURL();//code breaks here
    }
  • No haces lo que yo acabo de hacer para una hora: asegúrese de que la URL parte de toDataURL() es mayúscula. Yo era positiva todo mi código era correcto, pero sigue recibiendo este error….porque toDataUrl() con minúsculas Url no es en realidad una función que no importa lo duro que uno puede creer que es, jaja.
InformationsquelleAutor gaynorvader | 2014-10-09

1 Comentario

  1. 14

    Ok, he encontrado mi problema era que yo estaba tratando de llamar toDataURL() en mi objeto jQuery en lugar de mi elemento canvas. Para solucionar esto he utilizado .get(0). Completa el siguiente código:

    function generate(){
            html2canvas($('#b2_1'), {
                onrendered: function(canvas) {
                    canvas.setAttribute("id", "canvas");
                    document.body.appendChild(canvas);
                }
            });//this all works, the canvas appears as expected
    
            var myCanvas = $(document).find('#canvas');
            myCanvas.css("margin-left", "50px");
            var myImg = myCanvas.get(0).toDataURL();//have to get the canvas element from the jquery object
        }
    • Es allí una manera de cómo la fuerza empleada de nombre de archivo y la extensión en el cuadro de diálogo? Gracias
    • esto sólo crea la imagen como una matriz de bit. Es hasta usted cómo usted maneja a partir de ahí, si quieres guardarlo en algún lugar o convertir lo que sería necesario utilizar algunos de código del lado del servidor, no creo que sea posible para utilizar jQuery para esto.

Dejar respuesta

Please enter your comment!
Please enter your name here