0

Chrome 用の HTML5 SVG エディターを作成しています。パッケージ化されたアプリとして、次のコードを使用して保存ダイアログを実装しました。

function prepareExport(){
var svg = document.getElementById("canvas");
svgDoc = svg.children;
var exported = document.querySelector('#canvasWrap').innerHTML;
/*old stuff, does not work in packed apps. well for me anyway
var output = document.querySelector(".opt");
var outputTextarea = document.querySelector(".optText");
output.style.display = "block";
outputTextarea.style.display = "none";
var dlButton = document.querySelector(".dragout");
dlButton.setAttribute("href" ,"data:image/xml+svg;base64," + window.btoa(exported));
dlButton.setAttribute("data-downloadurl" ,dlButton.dataset['downloadurl'] + window.btoa(exported));
dlButton.addEventListener('dragstart', function(e) {
e.dataTransfer.setData('DownloadURL', this.dataset.downloadurl);
  }, false);
  */

  chrome.fileSystem.chooseEntry({type: 'saveFile'}, function(writableFileEntry, unused) {
    writableFileEntry.createWriter(function(writer) {
      writer.onerror = errorHandler;
      writer.onwriteend = function(e) {
    console.log('write complete');
  };
  writer.write(new Blob([exported], {type: 'image/svg+xml'}));  
}, errorHandler);
});
}

ボタンを使用してこの関数を実行し、[SVG をエクスポート] を実行しました。ダイアログは表示されませんでした。理由はわかりませんが、これは私の JavaScript コンソールです: http://prntscr.com/1uklw7

4

1 に答える 1