Задать вопрос
@LomasterX

Почему в Chrome при выполнении js мог перестать работать eval?

1. По всей видимости проблема связана с одним из последних обновлений Chrome, потому что до этого код работал вполне исправно несколько лет. В других браузерах (firefox, opera, brave) код работает. Или, наверное, точнее будет сказать, пока работает, потому что насколько знаю движок у всех один и Chrome просто включил изменения первым.

2. Если создать тестовую страницу (test.html ) с приведенным ниже кодом, то все работает нормально, но внутри кода на сайте работать отказывается. Вместо массива, результатом работы eval становится undefined.
<div id="data" onclick="test()">[1,2,3,4]</div>
<script>
	function test() {
		var a=$('#data').html();
		a=eval(a); // В тестовой версии - все хорошо, в рабочей - теперь undefined.
		console.log(a);
	}
</script>


3. На всякий случай опишу для чего использую eval на сайте.
После аякс запроса функции передается массив с html, каждый кусок которого обновляет нужное место на сайте.
$.post('/ajax.php', data, function(data, status) {
    if(data!='') 
        data=eval('('+data+')'); // data - массив вида: {'#id': html+js, '#id2': html+js...}
    else 
        return;
    data_update(data, status);
}
  • Вопрос задан
  • 103 просмотра
Подписаться 1 Средний 2 комментария
Решения вопроса 1
@LomasterX Автор вопроса
Всему виной оказалось расширение антибане Varanida!
Именно оно обновилось и начало блочить eval, а не Chrome.
Вряд ли кто-то столкнется с данной проблемной, но на всякий случай вопрос удалять не буду.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 17:50
7000 руб./за проект
18 дек. 2024, в 17:26
5000 руб./за проект
18 дек. 2024, в 17:23
1500 руб./за проект