Случаи возникновения ошибки в IE: «Предполагается наличие идентификатора, строки или числа» (Expected identifier, string. )
Разбираемся отчего может возникать ошибка только в Internet Explorer: «Предполагается наличие идентификатора, строки или числа» (Expected identifier, string or number).
Рассмотрим код в котором возникает ошибка. Причём ошибка только в браузере IE (у меня IE8), в остальных браузерах с этим нормально.
. delete : function() < // delete в кавычках, чтобы работало в IE! if(confirm('Совсем-совсем удалить эту запись?')) delEvent(calEvent); // удаляем из БД при редактировании $dialogContent.dialog("close"); >>, cancel : function() < $dialogContent.dialog("close"); >, // > >).show();
Это первый случай ошибки, который много где уже описан. Когда заканчивается перечисление переменных, то после последнего элемента не нужно ставить запятую. Internet Explorer считает это ошибкой и вообще не будет выполнять весь код, не откроет сайт (календарь FullCalendar в моём случае).
Но даже удалив запятую, ошибка не исчезнет. Именно этот случай у меня и возник (запятую ткнул для общности решения проблемы). При просмотре текста ошибки:
Error: Предполагается наличие идентификатора, строки или числа ( Expected identifier, string or number” )
Оказывается в браузере Internet Explorer слово delete — зарезервированное слово и просто так вводить переменную delete нельзя. Решение проблемы: заключить в одинарные кавычки, вот так — ‘delete’.
Правильный код, который будет работать в IE:
. 'delete' : function() < // delete в кавычках, чтобы работало в IE! if(confirm('Совсем-совсем удалить эту запись?')) < . delEvent(calEvent); // удаляем из БД при редактировании $dialogContent.dialog("close"); >>, cancel : function() < $dialogContent.dialog("close"); >> >).show();
stackoverflow.com — это очень толковый и крупный ресурс, лично я решил с его помощью около 70-80% всех своих косяков, хотя сначала не верил в его силу; только придётся перевести проблему и сформулировать на английском.
Using the word class as a key in a Javascript dictionary can also trigger the dreaded «Expected identifier, string or number» error because class is a reserved keyword in Internet Explorer.
< class : 'overlay'>// ERROR: Expected identifier, string or number
When using a reserved keyword as a key in a Javascript dictionary, enclose the key in quotes.
Hope this hint saves you a day of debugging hell.
А здесь можно видеть список зарезервированных слов, чтобы уже не натыкаться (как видим save и close сюда не входят, поэтому их можем не брать в кавычки).
Список зарезервированных переменных для JavaScript, избегайте называть переменные зарезервированными словами!
abstract | else | instanceof | super |
boolean | enum | int | switch |
break | export | interface | synchronized |
byte | extends | let | this |
case | false | long | throw |
catch | final | native | throws |
char | finally | new | transient |
class | float | null | true |
const | for | package | try |
continue | function | private | typeof |
debugger | goto | protected | var |
default | if | public | void |
delete | implements | return | volatile |
do | import | short | while |
double | in | static | with |
almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.
Ошибка. Предполагается наличие ‘)’
Ошибка «Предполагается наличие объекта»
в рамках лабы нужно сделать так чтобы можно было создать каталог, копировать его и удалить.
Ошибка JQuery: Предполагается наличие объекта
Подскажите, пожалуйста, кто знает. Этот скрипт в отдельном js файле .
Ошибка: ‘Предполагается наличие окончания инструкции’
Динамически формирую SQL запрос SQLfirst=’INSERT INTO documents (doctypes, header, announce.
Ошибка компиляции Microsoft VBScript error ‘800a03f6’ Предполагается наличие ‘End’ /rim/main.asp, line 40 else
Привет всем и вся! Я вот получил от шефа задание сделать кое-что на ASP. До этого в глаза его не.
userook,
ошибка там только одна — неправильно переданные параметры в slideToggle. Видимо хотели сделать так
jQuery('#searchgo').slideToggle(0.00000001);
Сообщение от Qwerty_Wasd
userook, Такая ошибка выскочит, если использовать Ваш вариант. Так как в нем Вы пытаетесь передать восьмеричное число в качестве параметра, заменив один из нолей буквой «o» — смотрим скрин.
Вариант, что предложил я — рабочий. И чтобы Вам не пришлось больше фантазировать, идем в песочницу и смотрим как он работает. В консоли ни одной ошибки.
jQuery(document).ready(function() { jQuery('a#sbutton').click(function() { jQuery('#searchgo').slideToggle(0.00000001); return false; }); });
div id="searchgo">aliqua occaecat non id incididunt ea non exercitation laborum incididunt fugiat do eu aliquip duis sit nulla adipisicing irure exercitation in enim officia aliqua ex ipsum ullamco adipisicing ipsum est consectetur ullamco tempor aute ut ullamco aliqua labore eiusmod voluptate dolor quis ex cupidatat aliqua ad Lorem nostrud sit commodo eu magna sunt nostrud aute irure in veniam laboris anim id in quis labore consectetur reprehenderit cillum proident aliqua commodo esse consequat in voluptate pariatur laborum pariatur veniam tempor enim fugiat deserunt sint non aliquip cupidatat cillum cillum ullamco minim amet sint non tempor amet sint magna dolor dolore eiusmod/div>a id="sbutton" href="#">Скрыть\Показать/a>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
*, *:after, *:before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; padding: 0; margin: 0; outline: 0; } /*стили выше добавлены только для этого примера, в реальном проекте используйте normilize.css\reset.css*/ body { text-align: center; } #searchgo { border: 2px solid #000; margin-bottom: 50px; } a#sbutton { text-decoration: none; border: 2px solid #000; padding: 5px; box-shadow: 3px 3px #000; cursor: pointer; color: #000; } a#sbutton:hover { box-shadow: 2px 2px #000; } a#sbutton:active { box-shadow: 1px 1px #000; }
У меня в начале скрипта ‘use strict’; стоит из-за этого и ошибка. А как переписать тогда slideToggle(0.00000001); я хз
userook, нет ошибка не из-за этого. Пройдите в песочницу снова, я сменил режим на строгий, чтобы Вы могли убедиться сами в отсутствии ошибки.
Специально для Вас, сделал страницу и опробовал c EDGE до IE9 —
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
html lang="en"> head> meta charset="utf-8" /> meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0" /> meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> style> *, *:after, *:before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; padding: 0; margin: 0; outline: 0; } /*стили выше добавлены только для этого примера, в реальном проекте используйте normilize.css\reset.css*/ body { text-align: center; } #searchgo border: 2px solid #000; margin-bottom: 50px; } a#sbutton text-decoration: none; border: 2px solid #000; padding: 5px; box-shadow: 3px 3px #000; cursor: pointer; color: #000; } a#sbutton:hover box-shadow: 2px 2px #000; } a#sbutton:active box-shadow: 1px 1px #000; } style> head> body> div id="searchgo">aliqua occaecat non id incididunt ea non exercitation laborum incididunt fugiat do eu aliquip duis sit nulla adipisicing irure exercitation in enim officia aliqua ex ipsum ullamco adipisicing ipsum est consectetur ullamco tempor aute ut ullamco aliqua labore eiusmod voluptate dolor quis ex cupidatat aliqua ad Lorem nostrud sit commodo eu magna sunt nostrud aute irure in veniam laboris anim id in quis labore consectetur reprehenderit cillum proident aliqua commodo esse consequat in voluptate pariatur laborum pariatur veniam tempor enim fugiat deserunt sint non aliquip cupidatat cillum cillum ullamco minim amet sint non tempor amet sint magna dolor dolore eiusmoddiv>a id="sbutton" href="#">Скрыть\Показатьa> script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"> script> script> 'use strict'; jQuery(document).ready(function() { jQuery('a#sbutton').click(function() { jQuery('#searchgo').slideToggle(0.00000001); return false; }); }); script> body> html>
Ошибка предполагается наличие объекта jscript что делать
Сообщение от Qwerty_Wasd
Тогда в хроме «Uncaught SyntaxError: Octal literals are not allowed in strict mode.»
userook, Такая ошибка выскочит, если использовать Ваш вариант. Так как в нем Вы пытаетесь передать восьмеричное число в качестве параметра, заменив один из нолей буквой «o» — смотрим скрин.
Вариант, что предложил я — рабочий. И чтобы Вам не пришлось больше фантазировать, идем в песочницу и смотрим как он работает. В консоли ни одной ошибки.
jQuery(document).ready(function() jQuery('a#sbutton').click(function() jQuery('#searchgo').slideToggle(0.00000001); return false; >); >);
div id="searchgo">aliqua occaecat non id incididunt ea non exercitation laborum incididunt fugiat do eu aliquip duis sit nulla adipisicing irure exercitation in enim officia aliqua ex ipsum ullamco adipisicing ipsum est consectetur ullamco tempor aute ut ullamco aliqua labore eiusmod voluptate dolor quis ex cupidatat aliqua ad Lorem nostrud sit commodo eu magna sunt nostrud aute irure in veniam laboris anim id in quis labore consectetur reprehenderit cillum proident aliqua commodo esse consequat in voluptate pariatur laborum pariatur veniam tempor enim fugiat deserunt sint non aliquip cupidatat cillum cillum ullamco minim amet sint non tempor amet sint magna dolor dolore eiusmod/div>a id="sbutton" href="#">СкрытьПоказать/a>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
*, *:after, *:before -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; padding: 0; margin: 0; outline: 0; > /*стили выше добавлены только для этого примера, в реальном проекте используйте normilize.cssreset.css*/ body text-align: center; > #searchgo border: 2px solid #000; margin-bottom: 50px; > a#sbutton text-decoration: none; border: 2px solid #000; padding: 5px; box-shadow: 3px 3px #000; cursor: pointer; color: #000; > a#sbutton:hover box-shadow: 2px 2px #000; > a#sbutton:active box-shadow: 1px 1px #000; >
У меня в начале скрипта ‘use strict’; стоит из-за этого и ошибка. А как переписать тогда slideToggle(0.00000001); я хз
userook, нет ошибка не из-за этого. Пройдите в песочницу снова, я сменил режим на строгий, чтобы Вы могли убедиться сами в отсутствии ошибки.
Специально для Вас, сделал страницу и опробовал c EDGE до IE9 —
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
html lang="en"> head> meta charset="utf-8" /> meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0" /> meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> style> *, *:after, *:before -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; padding: 0; margin: 0; outline: 0; > /*стили выше добавлены только для этого примера, в реальном проекте используйте normilize.cssreset.css*/ body text-align: center; > #searchgo border: 2px solid #000; margin-bottom: 50px; > a#sbutton text-decoration: none; border: 2px solid #000; padding: 5px; box-shadow: 3px 3px #000; cursor: pointer; color: #000; > a#sbutton:hover box-shadow: 2px 2px #000; > a#sbutton:active box-shadow: 1px 1px #000; > style> head> body> div id="searchgo">aliqua occaecat non id incididunt ea non exercitation laborum incididunt fugiat do eu aliquip duis sit nulla adipisicing irure exercitation in enim officia aliqua ex ipsum ullamco adipisicing ipsum est consectetur ullamco tempor aute ut ullamco aliqua labore eiusmod voluptate dolor quis ex cupidatat aliqua ad Lorem nostrud sit commodo eu magna sunt nostrud aute irure in veniam laboris anim id in quis labore consectetur reprehenderit cillum proident aliqua commodo esse consequat in voluptate pariatur laborum pariatur veniam tempor enim fugiat deserunt sint non aliquip cupidatat cillum cillum ullamco minim amet sint non tempor amet sint magna dolor dolore eiusmoddiv>a id="sbutton" href="#">СкрытьПоказатьa> script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8 anonymous"> script> script> 'use strict'; jQuery(document).ready(function() jQuery('a#sbutton').click(function() jQuery('#searchgo').slideToggle(0.00000001); return false; >); >); script> body> html>