Ответ 1
У Internet Explorer есть проблемы с запятыми в объектах и массивах;
title: {
text: 'Description', //<--
}
Вероятно, вы хотите:
title: {
text: 'Description'
}
Я запускаю плагин, который отображает календарь событий. Он отлично работает во всех браузерах, за исключением режима совместимости с IE. Когда эта опция отмечена, календарь исчезает. Я считаю, что это ошибка JS.
Ошибка отладчика IE:
element.qtip({
content: {
text: event.description,
title: {
text: 'Description',
}
},
position: {
at: 'top right',
adjust: {
x: 0, y: 30
},
},
В моем редакторе плагинов это код:
element.qtip({
content: {
text: event.description,
title: {
text: '<?php _e('Description', 'event_espresso'); ?>',
}
},
position: {
at: 'top right',
adjust: {
x: 0, y: 30
},
},
Я не очень разбираюсь в отладке, поэтому любая помощь будет оценена.
Если это помогает, вот страница: http://www.mbausa.org/calendar/
У Internet Explorer есть проблемы с запятыми в объектах и массивах;
title: {
text: 'Description', //<--
}
Вероятно, вы хотите:
title: {
text: 'Description'
}
Есть две распространенные причины этой ошибки. Либо иметь конечную запятую, если она не подходит, либо использовать зарезервированное слово JavaScript. В вашем случае у вас есть две ненужные запятые. Ниже приведен правильный фрагмент кода с комментариями, где я удалял запятые.
element.qtip({
content: {
text: event.description,
title: {
text: '<?php _e('Description', 'event_espresso'); ?>' // Removed Comma
}
},
position: {
at: 'top right',
adjust: {
x: 0, y: 30
} // Removed Comma
},
На самом деле я сделал сообщение в блоге (и видео), объяснив ошибку и показывая примеры и исправления. Его можно найти здесь: http://mikemclin.net/fixing-error-script1028-expected-identifier-string-or-number/
В старой версии IE не поддерживается некорректно сформированная строка JSON.
Вы никогда не должны помещать разделитель запятой, разделитель, когда нет привязок [', accolades' {'или новых свойств объекта.
Попробуйте:
position: {
at: 'top right',
adjust: {
x: 0, y: 30
} // <-- no comma here
},
вместо:
position: {
at: 'top right',
adjust: {
x: 0, y: 30
}, // <-- comma here
},
Вместо того, чтобы работать в режиме совместимости, вы можете принудительно отключить режим совместимости с...
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
в тэге <head>
.
Другая возможная ошибка связана с тем, что зарезервированное ключевое слово используется как хэш-ключ.
Ошибки IE8 при определении объекта Javascript?
Когда я использую {class:'icon'}
, я также получаю эту ошибку. Другие ключевые слова IE8, вероятно, тоже будут делать то же самое.
Если вы используете Vuex, и проблема проявляется в computed
хуке, вызывающем mapState
, то проблема mapState
с оператором распространения.
},
computed: {
...mapState({
Используйте babel, чтобы исправить это: https://babeljs.io/docs/en/babel-plugin-proposal-object-rest-spread