2015-02-24 7 views
8

मैं एक बाहरी svg आइकन को base64 में बदलने की कोशिश कर रहा हूं। यह फ़ायरफ़ॉक्स को छोड़कर सभी ब्राउज़रों में काम कर रहा है जो एक त्रुटि "NS_ERROR_NOT_AVAILABLE" फेंकता है।फ़ायरफ़ॉक्स svg canvas drawImage त्रुटि

 var img = new Image(); 
     img.src = "icon.svg"; 

     img.onload = function() { 
      var canvas = document.createElement("canvas");    
      canvas.width = this.width; 
      canvas.height = this.height; 
      var ctx = canvas.getContext("2d"); 
      ctx.drawImage(this, 0, 0); 
      var dataURL = canvas.toDataURL("image/png"); 
      return dataURL; 
     }; 

क्या कोई इस पर मेरी सहायता कर सकता है? अग्रिम में धन्यवाद।

+0

क्या आपके svg आइकन में चौड़ाई और ऊंचाई विशेषताएँ हैं? अगर ऐसा होता है तो वे प्रतिशत हैं? –

+0

हाय रॉबर्ट, यह एक svg फ़ाइल है जो एक svg dom तत्व नहीं है और हम इसे किसी चौड़ाई/ऊंचाई को असाइन कर सकते हैं। मैं पृष्ठ में इस svg का उपयोग कर रहा हूं Aneesh

+0

जो मेरे प्रश्न का उत्तर नहीं देता है। क्या icon.svg रूट '' तत्व पर चौड़ाई/ऊंचाई विशेषताओं है। यदि यह गुण मान प्रतिशत हैं? –

उत्तर

15

फ़ायरफ़ॉक्स कैनवास में एसवीजी छवियों को चित्रित करने का समर्थन नहीं करता है जब तक कि svg फ़ाइल रूट <svg> तत्व पर चौड़ाई/ऊंचाई विशेषताओं तक नहीं है और उन चौड़ाई/ऊंचाई विशेषताओं प्रतिशत नहीं हैं। यह longstanding bug है।

आपको icon.svg फ़ाइल को संपादित करने की आवश्यकता होगी ताकि यह उपर्युक्त मानदंडों को पूरा कर सके।

+0

धन्यवाद बहुत रॉबर्ट !! यह काम करता हैं!! :) – Aneesh

+0

उस बग के लिए एक लिंक पोस्ट करने की देखभाल? फिक्स प्रगति को ट्रैक करना दिलचस्प होगा – tivoni

+0

@tivoni मैंने एक लिंक जोड़ा है, लेकिन जब तक w3c परिभाषित नहीं होता है तब तक बग पर कोई प्रगति नहीं होगी। –

संबंधित मुद्दे