2013-07-09 2 views
6

노드 - 웹킷을 사용하여 앱을 만들고 있으므로 자바 스크립트가 많이 있습니다. 스크린 샷을 찍어 디스크에 저장하는 node.js 함수를 작성했지만 프로젝트 루트 디렉토리에 저장하고 사용자에게 저장 위치를 ​​선택하라는 메시지를 표시하려고하지만 node.js 함수를 찾을 수 없습니다. 방법은 저장 파일 대화 상자를 만들 수 있습니다. 현재 코드 :Node.js 파일을 저장할 위치를 사용자에게 묻습니다.

screen_shot.js :

var fs = require('fs'); 
exports.buildFile = function(name, value) { 
    var img = new Buffer(value, encoding='base64'); 
    fs.writeFile(name, img, function(err) { 
     if(err) { 
      console.log(err); 
     } else { 
      console.log("The file was saved!"); 
     } 
    }); 
}; 

은 index.html을 :

... 
    <script> 
     var sc= require('screen_shot'); 

     function wait() { 
      $('#close-popup').click(); 
      setTimeout(function() {screen_shot()}, 10); 
     } 

     function screen_shot() { 
      html2canvas($('body'), { 
       onrendered: function(canvas) { 
        var img = canvas.toDataURL("image/png").split(',')[1]; 
        var decodedImg = window.atob(img); 
        sc.buildFile("sc.png", img); 
       } 
      }); 
     } 
    </script> 
... 

<a href="#" onclick="wait();" data-role="button" data-theme="j">Screen shot</a> 

은 그냥 스크린 샷하기 전에 종료 시간을 사용하고 팝업을 제공하는 것입니다 대기 기능은 촬영 .

나는 node-webkit file dialog doc을 읽었지 만 찾고있는 것이 아니거나 제대로 작동하지 않을 수 있습니다.

+0

이것은 도움이 될 수 있습니다. http://stackoverflow.com/questions/5612373/javascript-saveas-dialog – Seano666

+2

@ Seano666 : 아니, 영업 환경이 다른 환경에서 작동 중임 – Bergi

답변

0

위키에서 파일 대화 페이지에 언급 save dialog file input

A는 사용자가 파일의 경로를 입력 할 수 있도록 대화로 저장하고 다른 비 존재하는 파일을 선택하는 것이 가능하다 열립니다

nwsaveas

모달과 같은 사용자 지정 대화 상자에서이를 사용하여 사용자에게 해당 입력을 쿼리 할 수 ​​있습니다. 당신 제공된 코드를 기반으로

매우 기본적인 예 :

여기
<script> 
    var fs = require('fs'); 

    var buildFile = function(name, value) { 
     var img = new Buffer(value, 'base64'); 
     fs.writeFile(name, img, function(err) { 
      if(err) { 
       console.log(err); 
      } else { 
       console.log("The file was saved!"); 
      } 
     }); 
    } 

    function wait() { 
     $('#close-popup').click(); 
     setTimeout(function() {screen_shot()}, 10); 
    } 

    function screen_shot() { 
     html2canvas($('body'), { 
      onrendered: function(canvas) { 
       var img = canvas.toDataURL("image/png").split(',')[1]; 
       var decodedImg = window.atob(img); 
       query_for_save_path(function (save_path) { 
       buildFile(save_path, img); 
       alert('Screenshot saved to: ' + save_path); 
       }); 
      } 
     }); 
    } 

    function query_for_save_path(cb) { 
     $('#dialog').show(); 
     $('#dialog input').one('change', function (event) { 
     cb($(this).val()); 
     }); 
    } 
</script> 

<a href="#" onclick="wait();" data-role="button" data-theme="j">Screen shot</a> 

<div id="dialog" style="display:none;"> 
    Choose a path to save your shot: 
    <input type="file" nwsaveas /> 
</div> 
1

또 다른 예 http://9ijy.net/blog/view/6, 불과 3 단계는 당신이 좋아 지금까지 파일을 저장할. 이 답변이 당신이 원하는 답변이며 위키의 File Dialog 페이지에서 save dialog file input이 매우 유용하다고 언급하십시오.

+0

링크가 작동하지 않음 –

관련 문제