Я хотел знать, можно ли найти через javascript, если вызов eval() имеет синтаксическую ошибку или неопределенную переменную и т. Д. ... так что скажем, я использую eval для произвольного javascript есть способ захватить вывод ошибки этого eval?eval javascript, проверьте ошибку синтаксиса
ответ
Вы можете проверить, действительно ли ошибка SyntaxError.
try {
eval(code);
} catch (e) {
if (e instanceof SyntaxError) {
alert(e.message);
}
}
Согласно Mozilla documentation for eval
:
Eval возвращает значение последнего вычисленного выражения.
Так что я думаю, вам может быть не повезло. Этот же документ также рекомендует не использовать eval
:
Eval() является опасной функцией, которая выполняет код, он передается с привилегиями вызывающего абонента. Если вы запустите eval() со строкой, на которую может повлиять злонамеренная сторона, вы можете запустить вредоносный код на компьютере пользователя с разрешениями вашей веб-страницы/расширения. Что еще более важно, сторонний код может видеть область, в которой был вызван eval(), что может привести к возможным атакам, при которых подобная функция не подвержена.
Поэтому, прежде чем использовать эту функцию, обратите внимание на риски.
Об eval быть злым, золотым правилом: не вводить пользовательский ввод, только строки eval, которые вы определили сами, например: с сервера. Да, атака MiTM, но если вы не можете доверять своему серверу, у вас больше проблем. – CularBytes
Вы можете использовать http://www.jslint.com/, который содержит парсер javascript, написанный ni javascript. Это даст вам много информации о вашем коде, его можно настроить на более расслабленную или нет, и т. Д.
При использовании try catch для обнаружения определенного типа ошибки следует убедиться, что другие типы исключений не являются подавлено. В противном случае, если оцениваемый код будет генерировать другой вид исключения, он может исчезнуть и вызвать неожиданное поведение кода.
Я хотел бы предложить сочинительство такого кода:
try {
eval(code);
} catch (e) {
if (e instanceof SyntaxError) {
alert(e.message);
} else {
throw(e);
}
}
Пожалуйста, обратите внимание на "еще" раздел.
throw не является функцией – Dev
- 1. интерпретатор JavaScript игнорирует ошибку синтаксиса
- 2. json eval, дающий ошибку
- 3. Проверьте наличие ошибок синтаксиса PHP?
- 4. Проверьте синтаксис JavaScript кода (JQuery) перед запуском jQuery.globalEval() или Eval()
- 5. Синтаксис синтаксиса JavaScript: указатель на функцию eval не является функцией eval?
- 6. Совершенно прекрасная ошибка создания синтаксиса JavaScript в Eval()
- 7. JavaScript eval
- 8. Onclick с аргументом вызывает ошибку синтаксиса javascript
- 9. Как вручную вывести ошибку синтаксиса в javascript
- 10. Javascript метка перерыва показывает ошибку синтаксиса
- 11. javascript Я не могу уловить ошибку синтаксиса
- 12. Javascript - Разбор JSON возвращает ошибку синтаксиса
- 13. eval (element.innerHTML) показывает непредвиденную синтаксическую ошибку
- 14. ошибка синтаксиса, неожиданный «)» в Eval кода
- 15. ошибка синтаксиса, неожиданный «=» в Eval() 'd код
- 16. javascript pass eval variables
- 17. Javascript eval querystring
- 18. Eval в bash_profile бросает ошибку
- 19. Почему выполнение 'eval' дает ошибку?
- 20. Функция CAP_FIRST дает ошибку синтаксиса
- 21. Дайте eval значение в JavaScript
- 22. ошибка синтаксиса при попытке сделать Eval
- 23. Javascript ошибка синтаксиса
- 24. Javascript для синтаксиса
- 25. php проверить ошибку синтаксиса
- 26. Имея ошибку синтаксиса PHP
- 27. mysql_query() возвращает ошибку синтаксиса
- 28. Реагировать ошибку синтаксиса
- 29. Объясните эту ошибку синтаксиса
- 30. Невозможно исправить ошибку синтаксиса
Мне интересно, почему я не пробовал это сам. Большое спасибо! –
@ Jesus - То, что вам интересно, это хорошо. Во всяком случае, удачи. – ChaosPandion