2012-06-24 13 views
11

मैं जावास्क्रिप्ट के साथ खेल रहा हूं और एक त्रुटि में चल रहा हूं। त्रुटि यह है:जेएस पोस्टफिक्स ऑपरेशन में अमान्य बाएं हाथ की ओर अभिव्यक्ति?

पोस्टफिक्स ऑपरेशन में अमान्य बाएं हाथ की ओर अभिव्यक्ति।

और लिपि लंबी है लेकिन मुझे लगता है कि यह यह मुद्दा है। अजीब चीज यह काम करती है जब मैं इसे स्थानीय रूप से चलाता हूं, लेकिन जब इसे पैक किया जाता है, तो परिसंपत्ति_पैकर का उपयोग करके, यह विफल हो जाता है।

कोई विचार क्यों मुझे यह त्रुटि मिल रही है?

अद्यतन: अधिक शोध करने के बाद मुझे यह कार्य मिला। त्रुटि "समय" कथन में होने के बाद होती है और मुझे लगता है कि यह "++ + a +" है। यह एक प्लगइन है इसलिए मैं कोड के साथ गड़बड़ नहीं करना चाहता था ... लेकिन क्या आप यह बात कर सकते हैं?

m.getInternetExplorerMajorVersion = function() { 
      var a = m.getInternetExplorerMajorVersion.cached = typeof m.getInternetExplorerMajorVersion.cached != "undefined" ? m.getInternetExplorerMajorVersion.cached : function() { 
       var a = 3, b = d.createElement("div"), c = b.getElementsByTagName("i"); 
       while ((b.innerHTML = "<!--[if gt IE "++ + a + "]><i></i><![endif]-->") && c[0]) 
Uncaught ReferenceError: Invalid left-hand side expression in postfix operation 
        ; 
       return a > 4 ? a : !1 
      }(); 
      return a 
     } 
+2

पर विधि gzencode($content, 9, FORCE_GZIP) का उपयोग कर रहा था यह कोड पूरी तरह से काम करता है। मुझे लगता है कि त्रुटि –

+2

कोड के दूसरे भाग में है त्रुटि पर रिपोर्ट की गई रेखा पर क्या है? –

+0

आप पैरामीटर के रूप में 'अपरिभाषित' क्यों गुजर रहे हैं? –

उत्तर

6

यह त्रुटि इस तरह के एक दिए गए मान के रूप में एक ++ या -- एक गैर संदर्भ, निम्नलिखित के संदर्भ में है। समस्या आपके कोड में कहीं और है।

20

आपने यह नहीं कहा कि कौन सी प्लगइन थी, लेकिन मैं उसी समस्या से निपट रहा था, जेफरी, मुझे एक ही प्लगइन लगता है, क्योंकि मेरा कोड लगभग समान दिख रहा था।

मैंने आपके नेतृत्व का पालन किया। प्लगइन History.js था, पृष्ठ से: https://github.com/browserstate/History.js/ और मैं बंडल एचटीएमएल 4 + एचटीएमएल 5 संस्करण का उपयोग कर रहा था, जिसे कम किया गया था, और फिर भी मेरे आंतरिक gzip संपीड़न के माध्यम से जा रहा था।

मैं

innerHTML="<!--[if gt IE "+ (++a)+"]><i></i><![endif]-->" 

में है कि टुकड़ा

innerHTML="<!--[if gt IE "+ ++a+"]><i></i><![endif]-->" 

बदल गया और यह काम किया है!

मुझे आश्चर्य हुआ कि वास्तव में क्या समस्या झूठ बोल रही है। सबसे महत्वपूर्ण संदिग्ध निश्चित रूप से gzip था। कोड निम्नलिखित सामान्य स्थिति में सही

var a=0; "begining of string "+ ++a+" the rest of string"; 

है और रिटर्न "begining of string 1 the rest of string"

हालांकि gzip संपीड़न सफेद स्थान से छुटकारा मिलता है और यह कुछ है कि एक के रूप में एक ब्राउज़र द्वारा समझा जाता है में बदल जाता है:

var a=0;"begining of string "+++a+" the rest of string"; 

हमें क्या त्रुटि देता है Uncaught ReferenceError: Invalid left-hand side expression in postfix operation

जैसा कि मैंने सोचा - यह gzip समस्या थी। इसने एक सफेद चरित्र को बहुत अधिक हटा दिया। PHP संस्करण 5.4.8-1

+0

आपने मेरा दिन बचा लिया! आपका बहुत बहुत धन्यवाद! – daveoncode

+0

इतिहास के साथ एक ही समस्या थी।जेएस और WordPress के लिए WP Minify प्लगइन का उपयोग कर। बहुत बहुत धन्यवाद! – r8n5n

+0

बढ़िया !!! उत्पादन में मेरी समस्या हल! – parajao

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