Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript vs. IE8 - Expected identifier, string or number

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?

like image 913
jondavidjohn Avatar asked Apr 07 '11 16:04

jondavidjohn


3 Answers

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

$("div#slider").easySlider({
    'auto': false,
    'continuous': true,
    'nextId': "nextBtn",
    'prevId': "prevBtn"
});
like image 115
AsGoodAsItGets Avatar answered Oct 21 '22 21:10

AsGoodAsItGets


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
    });
});
like image 36
dev101 Avatar answered Oct 21 '22 19:10

dev101


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

like image 20
William Avatar answered Oct 21 '22 19:10

William