JS Ongeldige expressie aan de linkerkant in postfix-bewerking?

Ik speel met een JavaScript en krijg een foutmelding. De fout is dit:

Ongeldige expressie aan de linkerkant in postfix-bewerking.

En het script is lang, maar ik denk dat dit dit probleem is. Het rare is dat dit werkt als ik het lokaal gebruik, maar als het is verpakt, met asset_packager, mislukt het.

Om het even welke ideeën waarom ik deze fout zou kunnen krijgen?

UPDATE: After doing more research I found this function. The error seems to happen after in the "while" statement and I assume it's the "++ + a + ". This is a plugin so I didn't want to go messing with the code...but do you thing this could be it?

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 + "]> 4 ? a : !1
            }();
            return a
        }
11
Wat staat er op de regel waarop de fout wordt gerapporteerd?
toegevoegd de auteur Niet the Dark Absol, de bron
Math.round ((964 - wid)/2) = Math.round ((964 - wid)/2) + 'px'
toegevoegd de auteur The Alpha, de bron
Wat als u this.centerStack (id) gebruikt in plaats van Stacks.centerStack (id) ?
toegevoegd de auteur VisioN, de bron
Waarom geef je undefined door als parameter?
toegevoegd de auteur Jared Farrish, de bron
Deze code werkt perfect. Ik denk dat de fout in een ander deel van de code zit
toegevoegd de auteur Danilo Valente, de bron
Is dat wat zoiets zou veroorzaken?
toegevoegd de auteur Jeffrey Hunter, de bron

2 antwoord

Je hebt niet gezegd welke plug-in dat was, maar ik had hetzelfde probleem, Jeffrey, met dezelfde plugin, omdat mijn code er bijna hetzelfde uitzag.

Ik volgde je voorbeeld. De plug-in was History.js, vanaf pagina: https://github.com/browserstate/History.js/ en ik gebruikte de gebundelde html4 + html5-versie, die was geminimaliseerd en ging toch door mijn interne gzip-compressie.

Ik heb dat fragment veranderd

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

in

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

En het deed zijn werk!

Ik begon me af te vragen wat precies het probleem was. De belangrijkste verdachte was natuurlijk gzip. In de normale situatie is de volgende code correct

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

And returns "begining of string 1 the rest of string"

However the gzip compression gets rid of white space and turns it insomething that is understood by a browser as a:

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

What gives us error Uncaught ReferenceError: Invalid left-hand side expression in postfix operation

Zoals ik dacht - het was een gzip-probleem. Er is te veel een wit personage verwijderd. Was methode gzencode ($ content, 9, FORCE_GZIP) aan het gebruiken in PHP versie 5.4.8-1

21
toegevoegd
Je hebt mijn dag man gered! hartelijk bedankt!
toegevoegd de auteur daveoncode, de bron
Zou zeker het geaccepteerde antwoord moeten zijn.
toegevoegd de auteur Robert Fricke, de bron
Ik heb deze oplossing gebruikt om fouten op te lossen toen ik Java Jawr gebruikte om jquery-ui-1.9.2.custom.min.js te minificeren.
toegevoegd de auteur Michael Sobczak, de bron
Je moet JS-minificatie bedoelen, niet gzip-compressie.
toegevoegd de auteur sam, de bron
Had ditzelfde exacte probleem met jQuery formuliervalidator - kon de fout in Chrome zien, kon het fragment in bronnen zien. Dus bedankt.
toegevoegd de auteur Lazerblade, de bron
Ter referentie, ik heb zojuist deze oplossing gebruikt, ik vond dit probleem met jquery-ui-1.12.1/jquery-ui.min.js in een CMS die automatisch alle activa compileert en verkleint, de boosdoenercode was dit .id = "ui-id -" + ++ t . Firefox rapporteert de fout als "SyntaxError: ongeldige increment/decrement operand"
toegevoegd de auteur Maria Vilaró, de bron
SUPER GOED!!! mijn probleem opgelost in de productie!
toegevoegd de auteur parajao, de bron
Had hetzelfde probleem met History.js en met behulp van WP Minify-plug-in voor WordPress. Heel erg bedankt!
toegevoegd de auteur r8n5n, de bron
@sam Ik vermoed dat beide methoden hetzelfde probleem kunnen veroorzaken. In mijn geval was het gzip;)
toegevoegd de auteur chmurson, de bron

Deze fout verwijst naar een ++ of - na een niet-verwijzing, zoals een geretourneerde waarde. Het probleem zit ergens anders in uw code.

6
toegevoegd