2012-04-17 81 views
2
運行

大家好,createObjectURL不工作在Chrome

我試圖找回從WebSocket伺服器的圖像(.NET) 我將圖像作爲字節然後我找回它在客戶端, 用於檢索在客戶端側的代碼(使用帆布和JavaScript):

var c=document.GetElementById("myCanvas"); 
var ctx=c.getContext("2d"); 
ws.onmessage=function(evt) 
{ 
    var image=new Image(); 
    image.src=URL.createObjectURL(evt.data); 
    ctx.drawImage(image,0,0); 
} 

它完美地顯示在Firefox, 但在瀏覽器,它只是返回未定義的圖像和通過createObjectURL 不會加載圖像我使用Chrome 18.0.1025.162

有什麼想法?

回答

12

MDN

此方法在鉻和Webkit前綴作爲window.webkitURL.createObjectURL()

你應該測試是否存在URL,然後使用適當的對象:

(window.URL ? URL : webkitURL).createObjectURL(evt.data); 
+1

我希望我已經看到了這一個較早的,讓我失去了10個小時左右我的手機上運行。謝謝 ! – Sephy 2013-11-12 21:31:20

+1

當我嘗試這個時,我仍然得到一個404找不到我的blob,並獲得一個額外的''webkitURL'已被棄用。請使用'URL'代替。' - 我相信這裏的回答解釋了原因 - http://stackoverflow.com/questions/6755401/createobjecturl-is-returning-undefined-in-chrome – 2015-06-08 17:44:18

+2

@JonathanBasile我的答案從'webkitURL '並使用它(以'URL'作爲後備)。我剛剛將它改爲默認使用'URL',並使用'webkitURL'作爲後備。那樣有用嗎?如果不是這樣,你可能會錯誤地使用'createObjectURL'(或者違反一些安全假設),你應該創建一個新的問題。 – apsillers 2015-06-08 17:46:22

相關問題