61 votes

Jeton inattendu ILLEGAL dans le kit de développement

// if the box is outside the window, move it to the end
function checkEdge() {
    var windowsLeftEdge = $('#window').position().left;

    $('.box').each( function(i, box) {
        // right edge of the sliding box
        var boxRightEdge = $(box).position().left + $(box).width();

        // position of last box + width + 10px
        var newPosition = getNewPosition();

        if ( parseFloat(boxRightEdge) < parseFloat(windowsLeftEdge) ) { 
            $(box).css('left', newPosition);
            $(box).remove().appendTo('#window');
            first = $('.box:first').attr('class');
        }
    });
}​ //Uncaught SyntaxError: Unexpected token ILLEGAL Occurs Here

// arrange the boxes to be aligned in a row
function arrangeBoxes() {
    $('.box').each( function(i, item) {
        var position = $('#window').position().left + i * ( $(item).width());
        $(item).css('left', position+'px')
    });
}

// shifts all the boxes to the left, then checks if any left the window
function shiftLeft() {
    $('.box').animate({'left' : "-=100px"}, 5000, 'linear', checkEdge());
}

// returns the new location for the box that exited the window
function getNewPosition() {
    return $('.box:last').position().left + $('.box:last').outerWidth();
}

$(window).load(function() {
      arrangeBoxes();
    shiftLeft();
    setInterval('shiftLeft()', 5000);

    $('#gallery-slideshow').nivoSlider({
        effect:'fade', //Specify sets like: 'fold,fade,sliceDown'
        slices:15,
        animSpeed:500, //Slide transition speed
        pauseTime:3000,
        startSlide:0, //Set starting Slide (0 index)
        directionNav:true, //Next & Prev
        directionNavHide:true, //Only show on hover
        controlNav:false, //1,2,3...
        keyboardNav:false, //Use left & right arrows
        pauseOnHover:false, //Stop animation while hovering
        manualAdvance:false, //Force manual transitions
        captionOpacity:0, //Universal caption opacity
        beforeChange: function(){},
        afterChange: function(){},
        slideshowEnd: function(){}, //Triggers after all slides have been shown
        lastSlide: function(){}, //Triggers when last slide is shown
        afterLoad: function(){} //Triggers when slider has loaded
    });

});

$(document).ready(function(){

    $('.class-table tr').click(function(){
        window.location=$(this).find("a").attr("href"); return false;
    });

    $('.special-workshop').click(function(){
        window.location=$(this).find("a").attr("href"); return false;
    });

});

Je suis un Uncaught SyntaxError: Unexpected token ILLÉGALE sur la ligne mentionnée ci-dessus. Il ne se produit que dans Google Chrome et Safari. Il fonctionne dans Firefox et le même code fonctionne sur ce JSBin (http://jsbin.com/uceqi/18)

Ce qui se passe?

Il existe de nombreuses références à ce problème sur Stackoverflow mais aucun d'entre eux semblent s'appliquer à cette situation.

Si elle permet de JSLint aussi de projections et d'erreur sur cette ligne de caractère 2 "Problème à la ligne 22 de personnage 2: Inattendu "."

136voto

user113716 Points 143363

Supprimez tous les caractères invisibles (espaces) autour de cette zone, puis essayez à nouveau.

J'ai vu cette erreur dans Safari lors du copier / coller de code. Vous pouvez choisir des caractères invalides (et malheureusement invisibles).

Il m’arrivait souvent beaucoup lors de la copie de jsFiddle.

14voto

Henrik N Points 4447

Cela ne s'applique pas à cet exemple de code particulier, mais en tant que nourriture Google, car j'ai le même message d'erreur:

 <script>document.write('<script src="…"></script>');</script>
 

donnera cette erreur mais

 <script>document.write('<script src="…"><'+'/script>');</script>
 

ne sera pas.

Explication supplémentaire ici: Pourquoi diviser la balise <script> lors de son écriture avec document.write ()?

6voto

Juha Palomäki Points 7216

J'ai eu la même erreur lorsque le fichier de script contenait des caractères spéciaux et que je tournais dans moode local (directement à partir du disque local). Dans mon cas, la solution consistait à indiquer explicitement le codage:

 <script src="my.js" charset="UTF-8"></script>
 

6voto

loglesby Points 31

Note pour ceux qui utilisent Vagrant: cela peut être causé par un bogue avec leurs dossiers partagés. Spécifiez NFS pour vos dossiers partagés dans votre fichier Vagrant pour éviter que cela ne se produise.

Ajouter simplement type: "nfs" à la fin fera l'affaire, comme ceci:

 config.vm.synced_folder ".", "/vagrant", type: "nfs"
 

4voto

Mere Development Points 692

Une autre cause possible pour Googlers: Utiliser des unités supplémentaires dans une taille comme celle-ci:

 $('#file_upload').uploadify({
    'uploader'  : '/uploadify/uploadify.swf',
    'script'    : '/uploadify/uploadify.php',
    'cancelImg' : '/uploadify/cancel.png',
    'folder'    : '/uploads',
    'queueID'        : 'custom-queue',
    'buttonImg': 'img/select-images.png',
    'width': '351px'
});
 

Paramétrer '351px' là m'a donné l'erreur. Supprimer 'px' a banni l'erreur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X