Неожиданный токен ILLEGAL в webkit
// 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;
});
});
Я получаю Uncaught SyntaxError: Неожиданный токен ILLEGAL в упомянутой выше строке. Это происходит только в Google Chrome и Safari. Он работает в Firefox, и тот же код работает на этом JSBin (http://jsbin.com/uceqi/18)
Что происходит?
Существует множество ссылок на эту проблему в Stackoverflow, но ни одна из них, похоже, не применима к этой ситуации.
Если это помогает JSLint также бросает и ошибки на этом символе линии 2 "Проблема в строке 22 символ 2: Неожиданный". "
Ответы
Ответ 1
Удалите все невидимые символы (пробелы) вокруг этой области, затем повторите попытку.
Я видел эту ошибку в Safari при копировании/вставке кода. Вы можете подобрать некоторые недопустимые (и, к сожалению, невидимые) символы.
Используется для меня во время копирования из jsFiddle.
Ответ 2
Это не относится к этому примеру кода, но как к продукту Google, так как я получил то же сообщение об ошибке:
<script>document.write('<script src="…"></script>');</script>
даст эту ошибку, но
<script>document.write('<script src="…"><'+'/script>');</script>
не будет.
Дальнейшее объяснение здесь: Зачем разбивать <script> тег при записи его с помощью document.write()?
Ответ 3
Я получил ту же ошибку, когда в файле script я включил контейнер с некоторыми специальными символами и когда я работал в local moode (прямо с локального диска). В моем случае решение заключалось в том, чтобы явно указать кодировку:
<script src="my.js" charset="UTF-8"></script>
Ответ 4
Примечание для всех, кто работает с Vagrant: это может быть вызвано ошибкой с их общими папками. Укажите NFS для ваших общих папок в вашем Vagrantfile, чтобы этого не произошло.
Просто добавление type: "nfs"
в конец сделает трюк, например:
config.vm.synced_folder ".", "/vagrant", type: "nfs"
Ответ 5
Другая возможная причина для GoogleGoglers: использование дополнительных единиц в таком размере:
$('#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'
});
Настройка "351px" дала мне ошибку. Удаление "px" изгнало ошибку.
Ответ 6
Также для Google-фуража: проверьте в своем текстовом редакторе, сохраняется ли файл .js как Unicode и рассмотрите возможность его установки в ANSI; также проверьте, установлены ли для строк в DOS и их переключение на Unix (в зависимости от вашего сервера, конечно).
Ответ 7
В случае сомнений... используйте JSLint, чтобы получить его!
http://www.jslint.com
Я просто столкнулся с подобной проблемой, копируя это из JFiddle;
$('input[name=MeetAll]').change(function (e) {
$('#MeetMost').attr('checked', !$('#MeetAll').attr('checked'));
});
$('input[name=MeetMost]').change(function (e) {
$('#MeetAll').attr('checked', !$('#MeetMost').attr('checked'));
});
Jslint сказал мне, что у меня был случайный "." Charachter...
Вещи, которые заставляют вас идти "хмммммм"
Ответ 8
Двойная обратная косая черта также работает! Тогда вы заявляете, что на самом деле должна быть/вместо какой-либо функции или чего-то еще.
<script>document.write('<script src="…"><//script>');</script>
Ответ 9
Это не будет точно ссылаться на заданную проблему, но я хочу поделиться своей ошибкой здесь, возможно, что-то 1 сделает simmilar один и также приземлится с его/ее проблемой здесь:
Ive получил ошибку Unexpected token ILLEGAL
, потому что я назвал функцию с номером как 1-й char.
Это было 3x3check()
.
Изменение его на check3x3()
решило мою проблему.
Ответ 10
Эта ошибка также может быть вызвана строкой javascript, подобной этой:
navi_elements.style.bottom = 20px;
Обратите внимание, что это значение не является строкой.
Ответ 11
Вы можете использовать онлайн Minify, он эффективно удаляет эти невидимые персонажи, а также изменяет ваш код. Поэтому будьте осторожны.
http://jscompress.com/