Reputation: 291
I'm running a plugin that displays an events calendar. It works great in all browsers except in IE compatibility mode. When that option is checked, the calendar disappears. I believe its a JS error.
IE Debugger Error:
element.qtip({
content: {
text: event.description,
title: {
text: 'Description',
}
},
position: {
at: 'top right',
adjust: {
x: 0, y: 30
},
},
In my plugin editor this is the code:
element.qtip({
content: {
text: event.description,
title: {
text: '<?php _e('Description', 'event_espresso'); ?>',
}
},
position: {
at: 'top right',
adjust: {
x: 0, y: 30
},
},
I'm not great at debugging so any help would be appreciated.
If it helps, here is the page: http://www.mbausa.org/calendar/
Upvotes: 28
Views: 50469
Reputation: 2932
I got this error when trying to import a ES6 module without transpilation through Babel or similar tools.
This row generated the error:
import myES6module from 'my-npm-ES6-module'
The solution is to make sure your workflow actually transpiles it to browser-compatible JavaScript.
Upvotes: 0
Reputation: 1146
If you are using Vuex and the issue manifests at the computed
hook calling mapState
, then the issue is with the spread operator.
},
computed: {
...mapState({
Use babel to fix it: https://babeljs.io/docs/en/babel-plugin-proposal-object-rest-spread
Upvotes: 6
Reputation: 17981
Another possible error is due to the reserved keyword being used as hash key.
IE8 errors when defining a Javascript object?
When I use {class:'icon'}
I would also get this error. Other IE8 keywords would probably do the same too.
Upvotes: 1
Reputation: 3637
There are 2 common causes for this error. Either having a trailing comma when inappropriate, or using a JavaScript reserved word. In your case, you have 2 unnecessary commas. Below is the correct code snippet, with comments where I removed the commas.
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
},
I actually did a blog post (and video) explaining the error and showing examples and fixes. It can be found here: http://mikemclin.net/fixing-error-script1028-expected-identifier-string-or-number/
Upvotes: 11
Reputation: 1282
Old version of IE doesn't support mal-formated JSON String.
You should never put a comma ',' separator when no braces '[', accolades '{' or new object properties come after.
Try :
position: {
at: 'top right',
adjust: {
x: 0, y: 30
} // <-- no comma here
},
instead of :
position: {
at: 'top right',
adjust: {
x: 0, y: 30
}, // <-- comma here
},
Upvotes: 8
Reputation: 11922
Rather than work round compatibility mode you can force non-compatibility mode with...
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
in your <head>
tag.
Upvotes: 3
Reputation: 29381
Internet Explorer have troubles with trailing commas in objects and arrays;
title: {
text: 'Description', //<--
}
You probably want:
title: {
text: 'Description'
}
Upvotes: 46