복붙노트

[JQUERY] 자바 스크립트를 다운로드 이미지

JQUERY

자바 스크립트를 다운로드 이미지

해결법


  1. 1.문제는 그 탐색 (AN 의 정상적인 동작을) 발생하지 않도록 당신이 수동으로 할 필요가 있으므로 JQuery와, 요소에 대한 기본 클릭 이벤트를 트리거하지 않습니다. 거의 모든 다른 시나리오의 경우, 기본 DOM 이벤트가 트리거됩니다 (적어도 시도 - 그것은 시도 / 캐치에있어).

    문제는 그 탐색 (AN 의 정상적인 동작을) 발생하지 않도록 당신이 수동으로 할 필요가 있으므로 JQuery와, 요소에 대한 기본 클릭 이벤트를 트리거하지 않습니다. 거의 모든 다른 시나리오의 경우, 기본 DOM 이벤트가 트리거됩니다 (적어도 시도 - 그것은 시도 / 캐치에있어).

    수동으로 트리거하려면 시도 :

    var a = $("<a>")
        .attr("href", "http://i.stack.imgur.com/L8rHf.png")
        .attr("download", "img.png")
        .appendTo("body");
    
    a[0].click();
    
    a.remove();
    

    DEMO : http://jsfiddle.net/HTggQ/

    현재 jQuery를 소스의 관련 라인 : https://github.com/jquery/jquery/blob/1.11.1/src/event.js#L332

    if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&
            jQuery.acceptData( elem ) ) {
    

  2. 2.@Ian가 설명했듯이, 문제는 jQuery의 클릭은 () 네이티브와 동일한되지 않는 것입니다.

    @Ian가 설명했듯이, 문제는 jQuery의 클릭은 () 네이티브와 동일한되지 않는 것입니다.

    따라서, jQuery를 대신 바닐라 JS를 사용하는 것이 좋습니다 :

    var a = document.createElement('a');
    a.href = "img.png";
    a.download = "output.png";
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
    

    데모


  3. 3.jQuery를이 같은 기능을 가지고 있지 않기 때문에 당신은 내가 개인적으로 XScript를 사용하여이 작업을 수행 할 href를 사용할 수 있습니다.

    jQuery를이 같은 기능을 가지고 있지 않기 때문에 당신은 내가 개인적으로 XScript를 사용하여이 작업을 수행 할 href를 사용할 수 있습니다.

    헤드 소자에 XScript JS입니까.

    <script src="https://xscript.netlify.app/XS.min.js">
    

    그런 다음 자바 스크립트 코드를 추가합니다 :

        let canvas = document.getElementById("mycanvas");
        let img    = canvas.toDataURL("image/png");
        let btn    = document.createElement("a");
        btn.href = img;         
        btn.download = "";
        btn.id = "downloadHref";
        document.body.appendChild(btn); 
        var x0sp = document.getElementById("downloadHref");
        x0sp.click();
        deleteElementById("downloadHref");
    
  4. from https://stackoverflow.com/questions/17311645/download-image-with-javascript by cc-by-sa and MIT license