2013-09-22 5 views
2

Я написал этот код:ошибка Javascript (SCRIPT5022) в IE10

AjxException.reportScriptError = 
function(ex) { 
if (AjxException.reportScriptErrors && AjxException.scriptErrorHandler && !(ex  
     instanceof AjxException)) { 
    AjxException.scriptErrorHandler(ex); 
} 
throw ex; 
}; 

это нормально во всех браузерах, включая IE9,8, но я получил эту ошибку в IE10:

SCRIPT5022: InvalidCharacterError 

throw ex; упоминается Почему это происходит в IE10 и как я могу это решить?

+0

Откройте файл в текстовом редакторе (я бы рекомендовал Notepad ++ с помощью Hex-плагина) и убедитесь, что не существует невидимого символа, который может вызвать проблему. – ComFreek

ответ

1

в конце концов, я понял, что с кодами: Код JavaScript-код был написан для старых версий IE: IE7, IE8, IE9 и использовать эту строку:

var ninput = document.createElement(AjxEnv.isIE ? ["<INPUT type='",type,"'>"].join("") : 
"INPUT"); 

для создания элемента ввода. он отлично работает в старых версиях IE, но не в IE10. Таким образом, я должен был использовать это вместо:

var ninput = document.createElement((AjxEnv.isIE && !AjxEnv.isIE10up)? ["<INPUT 
type='",type,"'>"].join("") : "INPUT"); 

сейчас, это работает.

0

Сохраняются ли ваши файлы без спецификации (знак заказа байта)? Те могут часто отбрасывать парсеров и наносить ущерб.

Я также рекомендую вырезать ваш код на максимально возможное количество строк, чтобы определить, какая строка имеет проблему, а затем удалить ее для целей тестирования, и таким образом вы сможете быстро определить, в чем проблема.

Например, вы можете ссылаться на объект неправильного типа (работа с массивом и объект, например, строка), поэтому, если вы удаляете объект, и он работает (или работает немного лучше), попробуйте alert('typeof myObject = '+typeof myObject); чтобы дать вам некоторое понимание.

Кроме того, похоже, у вас есть несколько экземпляров ex, убедитесь, что вы не используете строку и функцию как по имени ex.

Смежные вопросы