Js Ошибка На Всех Страницах
#1
Отправлено 12 Июль 2014 - 09:26
Скрин прилагаю.
#2
Отправлено 12 Июль 2014 - 10:17
AlexP_RUS (12 Июль 2014 - 09:26) писал:
Скрин прилагаю.
Проблема в файле main.js
Удалите
$('[name="' + $('#'+hidden[1]).attr('name') + '"]').val(hidden[2]);
#3
Отправлено 12 Июль 2014 - 13:00
Castiel (12 Июль 2014 - 10:17) писал:
Удалите
$('[name="' + $('#'+hidden[1]).attr('name') + '"]').val(hidden[2]);
В файле main.js у меня много чего изменено, поэтому боюсь что-либо удалять.
#4
Отправлено 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
Отправлено 02 Октябрь 2014 - 13:00
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
Отправлено 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
Отправлено 20 Ноябрь 2014 - 06:28
#8
Отправлено 14 Сентябрь 2015 - 15:02
#9
Отправлено 15 Сентябрь 2015 - 11:16
#10
Отправлено 15 Сентябрь 2015 - 17:22
AlexP_RUS (15 Сентябрь 2015 - 11:16) писал:
<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
Отправлено 15 Сентябрь 2015 - 19:36
#12
Отправлено 16 Сентябрь 2015 - 12:50
У меня сейчас в файле main.js в конце код такой:
console.log(hidden); //var hidden = /getElementsByClassName\("(.*)"\).*ibute\(.*, "(.*)"\)/.exec(html); // $('.insert-antispam').find('input.' + hidden[1]).attr('value', hidden[2]); });
Не могли бы написать готовый код, чтобы я его сразу вставил? А то не шибко разбираюсь.
#13
Отправлено 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
Отправлено 17 Сентябрь 2015 - 16:35
заранее спасибо!
#15
Отправлено 18 Сентябрь 2015 - 05:57
$(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
Отправлено 18 Сентябрь 2015 - 09:50
Vaccina (18 Сентябрь 2015 - 05:57) писал:
$(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
Отправлено 21 Сентябрь 2015 - 08:57
#18
Отправлено 21 Сентябрь 2015 - 10:22
плюс в некоторых браузерах, например в яндекс браузере при клике на картинку товара для подробного расмотрения картинка не как раньше становится больше в рамочке посредине, а на все страницу браузера открывается а на нее накладываются остальные данные сайта номера телефонов из шапки и так далее
#19
Отправлено 22 Сентябрь 2015 - 10:58
#20
Отправлено 28 Сентябрь 2015 - 15:46
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных