@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);
}
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
@LomasterX Автор вопроса
Всему виной оказалось расширение антибане Varanida!
Именно оно обновилось и начало блочить eval, а не Chrome.
Вряд ли кто-то столкнется с данной проблемной, но на всякий случай вопрос удалять не буду.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
02 мая 2024, в 14:44
500 руб./за проект
02 мая 2024, в 14:36
3000 руб./за проект
02 мая 2024, в 14:29
30000 руб./за проект