2013-10-01 36 views
0

我正在爲Chrome創建HTML5 SVG編輯器。作爲一個打包應用程序,我實現了一個保存對話框使用此代碼:爲什麼我的保存對話框不顯示Chrome應用程序

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

回答

1

這可能是一個權限錯誤。您是否已將寫入文件系統權限添加到清單中?有關詳細信息,請參閱http://developer.chrome.com/apps/fileSystem.html

如果這不是問題,您可以從回調中的chrome.lastError中獲得更多詳細信息。有關詳細信息,請參見http://developer.chrome.com/apps/runtime.html#property-lastError

另外,您可能還想查看文件系統示例:https://github.com/GoogleChrome/chrome-app-samples/tree/master/filesystem-access

+0

我有fileSystem但是你所引用的「寫入文件系統」權限和我擁有的權限有什麼區別? – figgycity50

+0

「fileSystem」可讓您從文件中讀取數據。 {「fileSystem」:[「write」]}還允許您寫入文件。 http://developer.chrome.com/apps/fileSystem.html有完整的細節。 –

相關問題