Перейти к содержимому


Js Ошибка На Всех Страницах


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 52

#1 AlexP_RUS

AlexP_RUS

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 491 сообщений

Отправлено 12 Июль 2014 - 09:26

Здравствуйте, сегодня стала выскакивать на всех страницах сайта "1 JS ошибка". Я ничего нигде в дизайне последнее время не менял. Как исправить?
Скрин прилагаю.

Прикрепленные изображения

  • 111.png


#2 Castiel

Castiel

    Активный участник

  • Модераторы
  • 3 519 сообщений
  • ГородНижний Новгород

Отправлено 12 Июль 2014 - 10:17

Просмотр сообщенияAlexP_RUS (12 Июль 2014 - 09:26) писал:

Здравствуйте, сегодня стала выскакивать на всех страницах сайта "1 JS ошибка". Я ничего нигде в дизайне последнее время не менял. Как исправить?
Скрин прилагаю.

Проблема в файле main.js
Удалите
$('[name="' + $('#'+hidden[1]).attr('name') + '"]').val(hidden[2]);


#3 AlexP_RUS

AlexP_RUS

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 491 сообщений

Отправлено 12 Июль 2014 - 13:00

Просмотр сообщенияCastiel (12 Июль 2014 - 10:17) писал:

Проблема в файле main.js
Удалите
$('[name="' + $('#'+hidden[1]).attr('name') + '"]').val(hidden[2]);
А что это и почему ошибка стала появляться только сейчас?
В файле main.js у меня много чего изменено, поэтому боюсь что-либо удалять.

#4 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 15 Июль 2014 - 01:43

Вам не нужно удалять строку

$('[name="' + $('#'+hidden[1]).attr('name') + '"]').val(hidden[2]);

так как из-за этого у вас могут не работать всплывающие формы обратной связи (обратный звонок и т.д).

Проблема в том что код добавления идентификатора антиспама изменился на странице товара и в связи с этим старый код вида

var hidden = /ElementById\("(.*)"\).*ibute\(.*, "(.*)"\)/.exec(html);

уже не работает. В результате получается ошибка. Необходимо адаптировать код под новые изменения. Судя по вашему файлу main.js строку описанную выше вы все же удалили. Вам необходимо сделать следующее - в файле main.js найдите строку

var hidden = /ElementById\("(.*)"\).*ibute\(.*, "(.*)"\)/.exec(html);

и замените её на

var hidden = /getElementsByClassName\("(.*)"\).*ibute\(.*, "(.*)"\)/.exec(html);
$('[name="' + $('.'+hidden[1]).attr('name') + '"]').val(hidden[2]);


#5 support

support

    Активный участник

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 02 Октябрь 2014 - 13:00

Для новой версии антиспама снова изменился код js, поэтому регулярка выше не сработает. Теперь можно использовать следующий код:
var hidden =/<script type=\"text\/javascript\">(function myGetElementsByClassName.*)<\/script>/.exec(html);
eval(hidden[1]);
вместо написанного выше:
var hidden = /getElementsByClassName\("(.*)"\).*ibute\(.*, "(.*)"\)/.exec(html);
$('[name="' + $('.'+hidden[1]).attr('name') + '"]').val(hidden[2]);


#6 Джейн

Джейн

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 293 сообщений
  • ГородСамара

Отправлено 10 Ноябрь 2014 - 17:51

Посмотрите у меня, пожалуйста, тоже.
На всех страницах сначала появляется 2js ошибки, потом, если страница открыта, количество ошибок начинает прибавляться само-собой. Текст ошибки везде один и тот же. Вроде ничего не меняла. Ошибки появляются не сразу, а через какое то время.
Работаю в Хроме.

Например в книге отзывов:

На сайте есть 22 JS ошибки

На странице возникла JS ошибка:
Uncaught TypeError: Converting circular structure to JSON на строке: 1.
Адрес файла: http://101korset.ru/...zyvy#show_tab_4
Как исправить ошибку?
Не удалось найти решение для данной ошибки. Для решения проблемы исправьте javascript в разделе «Сайт» > «Редактор тем».
Если необходимо помочь в решении данной ошибки, задайте вопрос в разделе "Ошибки" на нашем форуме.

#7 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 20 Ноябрь 2014 - 06:28

К сожалению, на указанной вами странице зафиксировать ошибку javascript не получается. На других страницах ошибки также обнаружены не были. Вы можете отключить визуальное информирование по следующей инструкции http://forum.storela...ки/#entry166902

#8 AlexP_RUS

AlexP_RUS

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 491 сообщений

Отправлено 14 Сентябрь 2015 - 15:02

Добрый день! С сегодняшнего дня опять стала выскакивать на всех страницах сайта "1 JS ошибка". Полагаю что код для антиспама снова изменился. Не могли бы вы прислать новые изменения кода, чтобы я его внедрил? Спасибо!

#9 AlexP_RUS

AlexP_RUS

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 491 сообщений

Отправлено 15 Сентябрь 2015 - 11:16

Прошу дать ответ как можно быстрее, сижу с ошибкой..

#10 support

support

    Активный участник

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 15 Сентябрь 2015 - 17:22

Просмотр сообщенияAlexP_RUS (15 Сентябрь 2015 - 11:16) писал:

Прошу дать ответ как можно быстрее, сижу с ошибкой..
Не так давно у нас появились интересные ребята, которые писали код отправки заказов на сайт, в среднем раз в 2-3 часа и затем магазин начинало заваливать заказами, после чего злоумышленники просили перевести им 100000 рублей чтобы заказы прекратились. Естественно пришлось доработать механизм генерации JS кода, теперь он будет стоять в ротации, когда раз в день меняется алгоритм шифровки, чтобы дорабатывать скрипт вымогателям стало не выгодно. Пока сделали в тестовой версии 3 варианта, но в ближайшие дни сделаем больше, плюс заметили что сильное шифрование некоторыми анализаторами кода от поисковых систем может расцениваться как вероятно вредоносный код, они не понимают что там происходит, что не есть хорошо, поэтому будем дорабатывать ещё. Там главное брать hash переменную и отправлять её в определённое скрытое поле в форме. Для этого можно разместить где-либо на странице переменную {HASH}, например так:
<script>document.antiSpamHash = '{HASH}';</script>
и затем устанавливать её в форме.

Относительно того варианта который был предложен раньше можно искать данный скрипт немного иначе, например по DIV-у:
<div style="width:0px;height:0px;overflow:hidden;position:absolute;top:0px;"> ... здесь код скрипта ... </div>
В итоге прошлая регулярка должна получиться примерно такой:
var hidden =/<div style=\"width:0px;height:0px;overflow:hidden;position:absolute;top:0px;\">.*<script[^>]*>(.*)<\/script>/.exec(html);
eval(hidden[1]);


#11 support

support

    Активный участник

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 15 Сентябрь 2015 - 19:36

Сегодня число вариантов довели до 7, на каждый день недели. Проверки поисковых систем на возможное наличие вредоносного кода все они проходят успешно.

#12 AlexP_RUS

AlexP_RUS

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 491 сообщений

Отправлено 16 Сентябрь 2015 - 12:50

Support, не совсем понял как он (код) должен в окончательном сформировавшемся виде выглядеть?
У меня сейчас в файле main.js в конце код такой:
console.log(hidden);
								//var hidden = /getElementsByClassName\("(.*)"\).*ibute\(.*, "(.*)"\)/.exec(html);
							   // $('.insert-antispam').find('input.' + hidden[1]).attr('value', hidden[2]);
							   
				});

Не могли бы написать готовый код, чтобы я его сразу вставил? А то не шибко разбираюсь.

#13 support

support

    Активный участник

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 16 Сентябрь 2015 - 15:21

Код для вашего сайта поправил. Сейчас полная версия выглядит так:
$(function() {
  if($('.insert-antispam').length) {
	$.get('/feedback', function(html) {
	  $(html).find('#inject-antispam').children().appendTo($('.insert-antispam'));
	  $('[name="form[feedback_name]"]').attr('name', $(html).find('#primaryContent form #feedback_name').attr('name'));
	  $('[name="form[feedback_email]"]').attr('name', $(html).find('#primaryContent form #feedback_еmail').attr('name'));
	  $('[name="form[feedback_message]"]').attr('name', $(html).find('#primaryContent form #feedback_message').attr('name'))
	  //.after($(html).find('#inject-antispam')).parent();

	  //var hidden =/document\.getElementsByClassName\(\"(.*)\"\);\}catch\(e\).*\.setAttribute\(\"value\", \"(.*)\"\)/.exec(html);
	  //var hidden =/<script type=\"text\/javascript\">(function myGetElementsByClassName.*)<\/script>/.exec(html);
	  var hidden =/<div style=\"width:0px;height:0px;overflow:hidden;position:absolute;top:0px;\">.*<script[^>]*>(.*)<\/script>/.exec(html);
	  eval(hidden[1]);
	  console.log(hidden);
	  //var hidden = /getElementsByClassName\("(.*)"\).*ibute\(.*, "(.*)"\)/.exec(html);
	  // $('.insert-antispam').find('input.' + hidden[1]).attr('value', hidden[2]);
	});
  }
});


#14 ARGO

ARGO

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 833 сообщений

Отправлено 17 Сентябрь 2015 - 16:35

у меня тоже ошибка вылетает эта. помогите что где поправить?
заранее спасибо!

#15 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 18 Сентябрь 2015 - 05:57

Для вашего шаблона код будет следующий(добавьте его в конец main.js):
$(function() {
  if($('.insert-antispam').length) {
		$.get('/callback', function(html) {
		  $(html).find('#inject-antispam').children().appendTo($('.insert-antispam'));
		  $('[name="form[feedback_name]"]').attr('name', $(html).find('.Feedbackcontent form #feedback_name').attr('name'));
		  $('[name="form[feedback_email]"]').attr('name', $(html).find('.Feedbackcontent form #feedback_еmail').attr('name'));
		  $('[name="form[feedback_message]"]').attr('name', $(html).find('.Feedbackcontent form #feedback_message').attr('name'))
		  //.after($(html).find('#inject-antispam')).parent();
		  //var hidden =/document\.getElementsByClassName\(\"(.*)\"\);\}catch\(e\).*\.setAttribute\(\"value\", \"(.*)\"\)/.exec(html);
		  //var hidden =/<script type=\"text\/javascript\">(function myGetElementsByClassName.*)<\/script>/.exec(html);
		  var hidden =/<div style=\"width:0px;height:0px;overflow:hidden;position:absolute;top:0px;\">.*<script[^>]*>(.*)<\/script>/.exec(html);
		  eval(hidden[1]);
		  console.log(hidden);
		  //var hidden = /getElementsByClassName\("(.*)"\).*ibute\(.*, "(.*)"\)/.exec(html);
		  // $('.insert-antispam').find('input.' + hidden[1]).attr('value', hidden[2]);
		});
  }
});

Далее в шаблоне HTML найдите:
  <form method="post" action="{CALLBACK_URL}" class="callbackForm" enctype="multipart/form-data" onsubmit="return validCallBack();">
				   <input type="hidden" name="hash" value="{HASH}" />
замените на:
  <form method="post" action="{CALLBACK_URL}" class="callbackForm" enctype="multipart/form-data" onsubmit="return validCallBack();">
				  <input type="hidden" name="hash" value="{HASH}" />
								<span class="insert-antispam"></span>

А в шаблоне Обратный звонок найдите:
<!-- Набор полей которые не видит пользователь, но видят боты. Когда они их заполняют мы точно знаем, что их прислал нам бот и мы не сохраняем подобный отзыв о товаре, а боту отправившему отзыв сообщаем, что отзыв добавлен успешно, но будет отображён здесь после прохождения модерации -->
	  {ANTISPAM_CODE}

замените на:
<!-- Набор полей которые не видит пользователь, но видят боты. Когда они их заполняют мы точно знаем, что их прислал нам бот и мы не сохраняем подобный отзыв о товаре, а боту отправившему отзыв сообщаем, что отзыв добавлен успешно, но будет отображён здесь после прохождения модерации -->
	<span id="inject-antispam">{ANTISPAM_CODE}</span>


#16 ARGO

ARGO

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 833 сообщений

Отправлено 18 Сентябрь 2015 - 09:50

Просмотр сообщенияVaccina (18 Сентябрь 2015 - 05:57) писал:

Для вашего шаблона код будет следующий(добавьте его в конец main.js):
$(function() {
if($('.insert-antispam').length) {
	 $.get('/callback', function(html) {
		 $(html).find('#inject-antispam').children().appendTo($('.insert-antispam'));
		 $('[name="form[feedback_name]"]').attr('name', $(html).find('.Feedbackcontent form #feedback_name').attr('name'));
		 $('[name="form[feedback_email]"]').attr('name', $(html).find('.Feedbackcontent form #feedback_еmail').attr('name'));
		 $('[name="form[feedback_message]"]').attr('name', $(html).find('.Feedbackcontent form #feedback_message').attr('name'))
		 //.after($(html).find('#inject-antispam')).parent();
		 //var hidden =/document\.getElementsByClassName\(\"(.*)\"\);\}catch\(e\).*\.setAttribute\(\"value\", \"(.*)\"\)/.exec(html);
		 //var hidden =/<script type=\"text\/javascript\">(function myGetElementsByClassName.*)<\/script>/.exec(html);
		 var hidden =/<div style=\"width:0px;height:0px;overflow:hidden;position:absolute;top:0px;\">.*<script[^>]*>(.*)<\/script>/.exec(html);
		 eval(hidden[1]);
		 console.log(hidden);
		 //var hidden = /getElementsByClassName\("(.*)"\).*ibute\(.*, "(.*)"\)/.exec(html);
		 // $('.insert-antispam').find('input.' + hidden[1]).attr('value', hidden[2]);
	 });
}
});

Далее в шаблоне HTML найдите:
<form method="post" action="{CALLBACK_URL}" class="callbackForm" enctype="multipart/form-data" onsubmit="return validCallBack();">
				 <input type="hidden" name="hash" value="{HASH}" />
замените на:
<form method="post" action="{CALLBACK_URL}" class="callbackForm" enctype="multipart/form-data" onsubmit="return validCallBack();">
				 <input type="hidden" name="hash" value="{HASH}" />
							 <span class="insert-antispam"></span>

А в шаблоне Обратный звонок найдите:
<!-- Набор полей которые не видит пользователь, но видят боты. Когда они их заполняют мы точно знаем, что их прислал нам бот и мы не сохраняем подобный отзыв о товаре, а боту отправившему отзыв сообщаем, что отзыв добавлен успешно, но будет отображён здесь после прохождения модерации -->
	 {ANTISPAM_CODE}

замените на:
<!-- Набор полей которые не видит пользователь, но видят боты. Когда они их заполняют мы точно знаем, что их прислал нам бот и мы не сохраняем подобный отзыв о товаре, а боту отправившему отзыв сообщаем, что отзыв добавлен успешно, но будет отображён здесь после прохождения модерации -->
<span id="inject-antispam">{ANTISPAM_CODE}</span>
При много благодарен!

#17 AlexP_RUS

AlexP_RUS

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 491 сообщений

Отправлено 21 Сентябрь 2015 - 08:57

К сожалению "1 JS ошибка" опять стала выскакивать на всех страницах сайта. Помогите пож-та исправить. Спасибо!

#18 ARGO

ARGO

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 833 сообщений

Отправлено 21 Сентябрь 2015 - 10:22

все равно ошибка снова лезет!
плюс в некоторых браузерах, например в яндекс браузере при клике на картинку товара для подробного расмотрения картинка не как раньше становится больше в рамочке посредине, а на все страницу браузера открывается а на нее накладываются остальные данные сайта номера телефонов из шапки и так далее

#19 ARGO

ARGO

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 833 сообщений

Отправлено 22 Сентябрь 2015 - 10:58

сегодня пропала. вчера на всех компах она была

#20 AlexP_RUS

AlexP_RUS

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 491 сообщений

Отправлено 28 Сентябрь 2015 - 15:46

Сегодня "1 JS ошибка" опять появилась. Помогите пож-та исправить. Спасибо!




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных