Javascript vs. IE8 - Expected identifier, string o

2019-03-18 14:05发布

问题:

No, it's not an extra comma.

Here is the snip that is giving me the problem.

$(document).ready(function(){   
    $("div#slider").easySlider({
        auto: false,
        continuous: true,
        nextId: "nextBtn",
        prevId: "prevBtn"
    });

    $("div#slider-banner").easySlider({
        auto: true,
        continuous: true,
        controlsShow: false
    });
        // <---------------------------------- Line 14
    $("div#slider-photos").easySlider({
        auto: true,
        continuous: true,
        controlsShow: false
    });

    $("#marquee").marquee({
        scrollSpeed: 25,
        pauseSpeed: 2000,
        showSpeed: 850

    }); 
});

ERROR DETAILS

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET CLR 1.1.4322; Tablet PC 2.0; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)
Timestamp: Wed, 6 Apr 2011 15:20:42 UTC


Message: Expected identifier, string or number
Line: 14
Char: 5
Code: 0

This is happening on random IE8 installs, any ideas?

回答1:

Try putting all your object properties in (double)quotes, like this:

$("div#slider").easySlider({
    'auto': false,
    'continuous': true,
    'nextId': "nextBtn",
    'prevId': "prevBtn"
});


回答2:

In 2015. if you still care about IE8 compatibility (more or less), my issue with this error was only manifesting on a live server, but didn't happen on localhost (go figure). And, it triggered IE8 error in such a way that it went down into IE7 Compatibility View, which also sucks just the same as Quirks Mode.

In any case, the problem could not be solved by any of the above tips, and the issue was a trailing comma after listing some parameters/options.

For Example:

$(document).ready(function(){
    $('#selector').func({
        rules: {
            parameter1: {
                option1: true,
                option2: 1,
                option3: 5
            }
        }, // <- this trailing comma is fatal to IE8
    });
});


回答3:

I had similar issue with knockout class attr binding. It happened that the class attribute had to be enclosed in quotes like 'class'.