5

मैं html5boilerplate निर्माण स्क्रिप्ट का उपयोग कर रहा हूँ और जब स्क्रिप्ट (जो गूगल बंद संकलक का उपयोग करता है)इंटरनेट एक्सप्लोरर, बंद संकलक और ट्रेलिंग अल्पविराम

को कम करने से मैं यह त्रुटि

-js.all.minify: 
    [echo] Minifying scripts 
    [copy] Copying 3 files to /Users/Username/Desktop/Web/intermediate/js 
    [apply] /Users/Juan/Desktop/Web/js/plugins.js:117: ERROR - Parse error. Internet Explorer has a non-standard intepretation of trailing commas. Arrays will have the wrong length and objects will not parse at all. 
    [apply]     }, { duration: 727 }) 
    [apply] 

      ^

लेकिन कोड हो रही है अगर असम्पीडित चलाया जाता है तो आईई 8 में काम करता है।

इस कोड

anim1.animate({ 
        'left': '+=32px', 
        'filter': 'alpha(opacity=100)', 
        '-moz-opacity': '1', 
        '-khtml-opacity': '1', 
        'opacity': '1', 
       }, { duration: 727 }) 

मैं इस कोड पास Compulsure संकलक कैसे कर सकता है?

धन्यवाद

उत्तर

10

अपने वस्तु शाब्दिक से ज़रूरत से ज़्यादा पिछले अल्पविराम निकालें: बंद संकलक का कहना है

anim1.animate({ 
    'left': '+=32px', 
    'filter': 'alpha(opacity=100)', 
    '-moz-opacity': '1', 
    '-khtml-opacity': '1', 
    'opacity': '1'  // <-- No comma here. 
}, { duration: 727 }); // <-- I'd also suggest a semicolon there. 

के रूप में, इस तरह के अनुगामी अल्पविराम के साथ शाब्दिक कुछ ब्राउज़र द्वारा पार्स नहीं किया जा सकता है।

+0

मैं इस कोड पर इतना खर्च करता हूं कि मैं इसे अपनी आंखों के लिए सही नहीं देख पा रहा था। मुझे अभी भी यह अजीब लगता है कि कोड IE 7,8,9 में ठीक काम करता है लेकिन संकलक इसे किसी प्रकार की घातक त्रुटि का इलाज करता है। धन्यवाद Frédéric। – Juan

+1

यहां एक लेख है जो बताता है कि क्यों: http://www.enterprisedojo.com/2010/12/19/beware-the-trailing-comma-of-death/। आप इस त्रुटि को '--jscomp_warning internetExplorer चेक' ध्वज का उपयोग कर चेतावनी में परिवर्तित कर सकते हैं। –

+0

जेएसहिंट और जेएसलिंट मुझे यह बताने में वाकई अच्छा लगा होगा, क्योंकि मैंने इस पर सिर्फ पूरे दिन बर्बाद कर दिया है ... एसएमडीएच धन्यवाद –

4

या एक्मास्क्रिप्ट 5 मोड सक्षम करें। Ecmascript 5 पिछला कॉमा व्यवहार को मानकीकृत करता है लेकिन आईई 8 पूरी तरह से इसका समर्थन नहीं करता है ES5 (न तो IE9 जो सख्त मोड गुम है)।