上面的代码对我来说不太奏效(缺少逗号,
type:"POST",并且blob函数的数据URI报错。我得到以下代码在Firefox和Chrome中运行:
function PostImageToFacebook(authToken){ var canvas = document.getElementById("c"); var imageData = canvas.toDataURL("image/png"); try { blob = dataURItoBlob(imageData); } catch(e) { console.log(e); } var fd = new FormData(); fd.append("access_token",authToken); fd.append("source", blob); fd.append("message","Photo Text"); try { $.ajax({ url:"https://graph.facebook.com/me/photos?access_token=" + authToken, type:"POST", data:fd, processdata:false, contentType:false, cache:false, success:function(data){ console.log("success " + data); }, error:function(shr,status,data){ console.log("error " + data + " Status " + shr.status); }, complete:function(){ console.log("Posted to facebook"); } }); } catch(e) { console.log(e); }}function dataURItoBlob(dataURI) { var byteString = atob(dataURI.split(',')[1]); var ab = new ArrayBuffer(byteString.length); var ia = new Uint8Array(ab); for (var i = 0; i < byteString.length; i++) { ia[i] = byteString.charCodeAt(i); } return new Blob([ab], { type: 'image/png' });}这是GitHub https://github.com/DanBrown180/html5-canvas-post-to-facebook-
base64上的代码



