2012-12-19 45 views
5

मैं अभी एक परिस्थिति में हूं जहां मुझे IE8 पर काम करने के लिए Kinetic.js और कैनवास तत्व के साथ काम करने वाला कुछ जटिल कोड होना चाहिए।Kinetic.js बनाने का कोई तरीका IE8 का समर्थन करता है?

आधिकारिक तौर पर, Kinetic.js में IE8 का समर्थन करने की कोई योजना नहीं है।

मैं webshims lib उपयोग करने की कोशिश लेकिन Kinetic.js निम्नलिखित कोड पर विफल रहता है:

Kinetic.Canvas = function(width, height) { 
    this.element = document.createElement('canvas'); 
    this.context = this.element.getContext('2d'); //<-- Error here 

    // set dimensions 
    this.element.width = width; 
    this.element.height = height; 
}; 

त्रुटि "वस्तु संपत्ति या विधि 'getContext' का समर्थन नहीं करता है।" यह मुझे समझ में आता है, क्योंकि मैं एक कैनवास तत्व के तरीकों को लागू करने के लिए IE8 दस्तावेज़ द्वारा बनाए गए तत्व कैनवास की अपेक्षा नहीं करता, लेकिन यदि <canvas> तत्व पहले से ही बनाया गया था, तो webshims खेला होगा और आप विधियों का उपयोग कर सकते हैं। हालांकि, एक एकल कैनवास तत्व का उपयोग करने के लिए Kinetic.js को मजबूर करना इसकी कुछ कार्यक्षमता को तोड़ देगा (क्योंकि यह फ्लाई पर कैनवास ऑब्जेक्ट बनाता है)।

यह प्राप्त करने के लिए मेरे विकल्प कौन से हैं?

+0

क्रोम फ्रेम आपकी मदद कर सकता है? http://www.google.com/chromeframe?quickenable=true – Flot2011

+0

@ फ़्लोट2011 यह एक संभावना है, धन्यवाद। – Alpha

+1

इसमें रुचि रखने वाले लोगों के लिए - http://fabricjs.com/ पर विचार करने लायक हो सकता है। यह IE8 का समर्थन करता है (हालांकि मैंने परीक्षण नहीं किया है कि यह कितना अच्छा करता है)। यदि आप कैनवास या एसवीजी के बारे में इतने चिंतित नहीं हैं, तो भी http://raphaeljs.com/ पर विचार करें (IE8 समर्थन बुनियादी वैक्टरों के लिए अच्छा है, लेकिन पाठ के लिए बकवास और पीएनजी छवियों का उपयोग करके कुछ भी भरने के लिए) – user568458

उत्तर

3

सरल उत्तर "नहीं" है।

जैसा कि एक टिप्पणीकर्ता ने उल्लेख किया है, Google Chrome Frame एक ठीक विकल्प है, जो अनिवार्य रूप से क्रोम के प्रतिपादन इंजन को आईई प्लगइन के रूप में स्थापित करता है।

the excanvas project है, जो पहले अच्छा लगता है। यह वीएमएल (एसवीजी) में कैनवास को लागू करने का प्रयास था ताकि आईई 6-8 कैनवास का उपयोग कर सके।

एक्सकनवास भयानक है। विशेष रूप से किसी भी एनीमेशन के साथ, और यह कुछ कैनवास छवि मैनिपुलेशन सामग्री नहीं कर सकता है। और यह लगभग 4 वर्षों में अद्यतन नहीं किया गया है। मैं इसका उपयोग करने के खिलाफ अत्यधिक सुझाव देता हूं, लेकिन यह आपके विचार के लिए है।

+0

धन्यवाद। मैंने आपके प्रश्न पर वापस आने से पहले WebShims, FlashCanvas, ExCanvas और मेरे पक्ष में अन्य मिश्रित विकल्प (Kinetic.js को पैच करने) का प्रयास किया था। मेरे लिए कुछ भी काम नहीं किया है, इसलिए मैं अपनी हार स्वीकार करूंगा। – Alpha

+0

यह दुखद लेकिन सच है। आईई 8 का समर्थन नहीं करना एकमात्र यथार्थवादी विकल्प है यदि आप वास्तव में सभी कैनवास का लाभ उठाना चाहते हैं, जैसे कि KineticJS करता है –