Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нужна помощь по устранению ошибок (https://javascript.ru/forum/misc/73066-nuzhna-pomoshh-po-ustraneniyu-oshibok.html)

Stas1985 19.03.2018 13:16

Нужна помощь по устранению ошибок
 
Нужна помощь по устранению ошибок на сайте
На странице _https://update.lik-astana.kz/bagetnaya-masterskaya/katalog-bageta.html стоит фильтр по товарам и при фильтрации товара в консоле лезет куча ошибок.
Помогите разобраться с ошибками или пните в нужном направлении.

j0hnik 19.03.2018 13:52

Stas1985,
не удивительно
с eval() и больше бывает.

Stas1985 19.03.2018 14:03

Цитата:

Сообщение от j0hnik (Сообщение 480918)
Stas1985,
не удивительно
с eval() и больше бывает.

Здравствуйте, подскажите как поправить.

laimas 19.03.2018 14:20

Stas1985,
Консоль же выдает ошибку в строке 21

<script>echo.init({offset:100,throttle:250,unload:false,});</script>

В JS нет такой функции, а она имеется видимо тут

<script src="/templates/lik-astana/echo/echo.min.js" async="" type="text/javascript"></script>

но этот скрипт подключается после вызова данной функции.

Это

<a href=/ title=Полиграфия Астана >

тоже ошибка, должно быть

<a href="/" title="Полиграфия Астана" >

текст с пробелами уж точно обязательно в кавычки.

Stas1985 19.03.2018 14:38

<script>echo.init({offset:100,throttle:250,unload: false,});</script>
Удалил

<a href=/ title=Полиграфия Астана > Не могу найти где вы ее взяли

laimas 19.03.2018 14:45

Вот в таком порядке должно быть подключение

<script src="/templates/lik-astana/echo/echo.min.js" async="" type="text/javascript"></script>
<script>echo.init({offset:100,throttle:250,unload: false,});</script>

И почему не в самом подвале страницы подключается, а в средине html-кода?

Ищите в строке 21 страницы результирующей, длиииииииная портянка. Лучше в исходнике на сервере искать, в любом редакторе закажите поиск по "echo", и исправьте.

laimas 19.03.2018 14:46

Цитата:

Сообщение от Stas1985
<a href=/ title=Полиграфия Астана > Не могу найти где вы ее взяли

Там же, в 21 строке, причем это не одна ссылка с таким объявлением, в несколько.

Stas1985 20.03.2018 06:34

Ссылки поправил но вот с ошибками так и не разобрался.
В js не селен помогите решить.

laimas 20.03.2018 07:13

Есть ошибки в объектах, а это не JS виноват, а сервер, например:

<script type="application/ld+json">{"@context":"http://schema.org",....

после закрывающей этот объект фигурной скобки, есть лишняя.

Stas1985 20.03.2018 07:30

Вот этот файл
<script type="application/ld+json">
{
  "@context" : "http://schema.org", "@type" : "LocalBusiness", "name" : "Полиграфия - Оформление в багет",
  "telephone" : "+7 (7172) 31 00 01, 31 80 42, 39 71 90", "email" : "lik-astana@mail.ru",
  "address" : {
    "@type" : "PostalAddress",
    "streetAddress" : "ул. Бейбитшилик, 71 кв. 19 пересечение ул. Бейбитшилик (Мира) и ул. А. Молдагуловой (9 Мая), вход с проезжей части, вывеска Лик",
    "addressLocality" : "Астана", 
	"addressCountry" : "Республика Казахстан", 
	"postalCode" : "010000"
  },
  "openingHoursSpecification" : {
    "@type" : "OpeningHoursSpecification",
    "dayOfWeek" : {
      "@type" : "DayOfWeek",
      "name" : "понедельник - пятница с 9:00 до 19:00, обед с 13:00 до 14:00;"
   }, 
   "opens" : "9:00 до 19:00", 
   "closes" : "13:00 до 14:00"
   }, 
   "image" : "https://lik-astana.kz/images/logo-schema.jpg"
   }, 
   "url" : "https://lik-astana.kz/"  
}
{
  "@context": "http://schema.org", "@type": "Organization", "url": "https://lik-astana.kz", "logo": "https://lik-astana.kz/images/mabile_logo.png"
}
{
  "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement":
  [{
    "@type": "ListItem", "position": 1,
    "item": { "@id": "https://lik-astana.kz/", "name": "Главная" }
  },{
    "@type": "ListItem", "position": 2,
    "item": { "@id": "https://lik-astana.kz/o-kompanii.html", "name": "О КОМПАНИИ" }
  },{
    "@type": "ListItem", "position": 3,
    "item": {  "@id": "https://lik-astana.kz/kontakty.html", "name": "Контакты"}
    }]
}
</script>

laimas 20.03.2018 07:34

Строка 24 - фигурная скобка лишняя.
И объекты записываться будут так: {...},{...}, а в вашем представлении запятых нет.

Stas1985 20.03.2018 08:04

то есть делать так
<script type="application/ld+json">
{
  "@context" : "http://schema.org", "@type" : "LocalBusiness", "name" : "Полиграфия - Оформление в багет",
  "telephone" : "+7 (7172) 31 00 01, 31 80 42, 39 71 90", "email" : "lik-astana@mail.ru",
  "address" : {
    "@type" : "PostalAddress",
    "streetAddress" : "ул. Бейбитшилик, 71 кв. 19 пересечение ул. Бейбитшилик (Мира) и ул. А. Молдагуловой (9 Мая), вход с проезжей части, вывеска Лик",
    "addressLocality" : "Астана", 
	"addressCountry" : "Республика Казахстан", 
	"postalCode" : "010000"
  },
  "openingHoursSpecification" : {
    "@type" : "OpeningHoursSpecification",
    "dayOfWeek" : {
      "@type" : "DayOfWeek",
      "name" : "понедельник - пятница с 9:00 до 19:00, обед с 13:00 до 14:00;"
   }, 
   "opens" : "9:00 до 19:00", 
   "closes" : "13:00 до 14:00"
   }, 
   "image" : "https://lik-astana.kz/images/logo-schema.jpg"
   }, 
   "url" : "https://lik-astana.kz/"  
{
  "@context": "http://schema.org", "@type": "Organization", "url": "https://lik-astana.kz", "logo": "https://lik-astana.kz/images/mabile_logo.png"
}
{
  "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement":
  [{
    "@type": "ListItem", "position": 1,
    "item": { "@id": "https://lik-astana.kz/", "name": "Главная" }
  },{
    "@type": "ListItem", "position": 2,
    "item": { "@id": "https://lik-astana.kz/o-kompanii.html", "name": "О КОМПАНИИ" }
  },{
    "@type": "ListItem", "position": 3,
    "item": {  "@id": "https://lik-astana.kz/kontakty.html", "name": "Контакты"}
    }]
}
</script>

или так
<script type="application/ld+json">
{
  "@context" : "http://schema.org", "@type" : "LocalBusiness", "name" : "Полиграфия - Оформление в багет",
  "telephone" : "+7 (7172) 31 00 01, 31 80 42, 39 71 90", "email" : "lik-astana@mail.ru",
  "address" : {
    "@type" : "PostalAddress",
    "streetAddress" : "ул. Бейбитшилик, 71 кв. 19 пересечение ул. Бейбитшилик (Мира) и ул. А. Молдагуловой (9 Мая), вход с проезжей части, вывеска Лик",
    "addressLocality" : "Астана", 
	"addressCountry" : "Республика Казахстан", 
	"postalCode" : "010000"
  },
  "openingHoursSpecification" : {
    "@type" : "OpeningHoursSpecification",
    "dayOfWeek" : {
      "@type" : "DayOfWeek",
      "name" : "понедельник - пятница с 9:00 до 19:00, обед с 13:00 до 14:00;"
   }, 
   "opens" : "9:00 до 19:00", 
   "closes" : "13:00 до 14:00"
   }, 
   "image" : "https://lik-astana.kz/images/logo-schema.jpg" 
   "url" : "https://lik-astana.kz/"  
}
{
  "@context": "http://schema.org", "@type": "Organization", "url": "https://lik-astana.kz", "logo": "https://lik-astana.kz/images/mabile_logo.png"
}
{
  "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement":
  [{
    "@type": "ListItem", "position": 1,
    "item": { "@id": "https://lik-astana.kz/", "name": "Главная" }
  },{
    "@type": "ListItem", "position": 2,
    "item": { "@id": "https://lik-astana.kz/o-kompanii.html", "name": "О КОМПАНИИ" }
  },{
    "@type": "ListItem", "position": 3,
    "item": {  "@id": "https://lik-astana.kz/kontakty.html", "name": "Контакты"}
    }]
}
</script>

laimas 20.03.2018 08:14

По идее так:

{
  "@context" : "http://schema.org", "@type" : "LocalBusiness", "name" : "Полиграфия - Оформление в багет",
  "telephone" : "+7 (7172) 31 00 01, 31 80 42, 39 71 90", "email" : "lik-astana@mail.ru",
  "address" : {
    "@type" : "PostalAddress",
    "streetAddress" : "ул. Бейбитшилик, 71 кв. 19 пересечение ул. Бейбитшилик (Мира) и ул. А. Молдагуловой (9 Мая), вход с проезжей части, вывеска Лик",
    "addressLocality" : "Астана",
    "addressCountry" : "Республика Казахстан",
    "postalCode" : "010000"
  },
  "openingHoursSpecification" : {
    "@type" : "OpeningHoursSpecification",
    "dayOfWeek" : {
      "@type" : "DayOfWeek",
      "name" : "понедельник - пятница с 9:00 до 19:00, обед с 13:00 до 14:00;"
   },
   "opens" : "9:00 до 19:00",
   "closes" : "13:00 до 14:00"
   },
   "image" : "https://lik-astana.kz/images/logo-schema.jpg"
   },
   "url" : "https://lik-astana.kz/", 
{
  "@context": "http://schema.org", "@type": "Organization", "url": "https://lik-astana.kz", "logo": "https://lik-astana.kz/images/mabile_logo.png"
},
{
  "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement":
  [{
    "@type": "ListItem", "position": 1,
    "item": { "@id": "https://lik-astana.kz/", "name": "Главная" }
  },{
    "@type": "ListItem", "position": 2,
    "item": { "@id": "https://lik-astana.kz/o-kompanii.html", "name": "О КОМПАНИИ" }
  },{
    "@type": "ListItem", "position": 3,
    "item": {  "@id": "https://lik-astana.kz/kontakty.html", "name": "Контакты"}
    }]
}


Но, вы что их сами ручками вставляете в код или это данные например из базы? И каким образом скрипты будут находить эти объекты если они не содержат имен?

Stas1985 20.03.2018 08:45

Цитата:

Но, вы что их сами ручками вставляете в код или это данные например из базы?
Вставляется в шаблон файл schema.php а в нем этот код.
Данный шаблон тянется еще с joomla 2 и не переделывался.
Цитата:

И каким образом скрипты будут находить эти объекты если они не содержат имен?
Какие скрипты должны находить?

laimas 20.03.2018 08:59

Цитата:

Сообщение от Stas1985
Вставляется в шаблон файл schema.php а в нем этот код.

Ну так нужно не руками править, а искать проблемы в РНР коде, он готовит этот JSON, а "два подряд json" как один "json", то есть {}{} не могут быть, это ошибка.

А РНР готовит этот json из массива/массивов посредством кодирования их функцией json_encode(), если только в вашем коде не "самописка", которая и дает ошибки.

Цитата:

Сообщение от Stas1985
Какие скрипты должны находить?

Если объявлен объект под переменной с именем к примеру var obj = {'data': 1}, то получить из него данные, это в сценарии так: obj.data. У вас просто скриптом подключаются не именованные объекты - {},{}..., каким образом js будут обращаться к ним?

Stas1985 20.03.2018 09:33

Файл schema.php и есть такого вида
<script type="application/ld+json">
{
	  "@context" : "http://schema.org", "@type" : "LocalBusiness", "name" : "Полиграфия - Оформление в багет",
	  "telephone" : "+7 (7172) 31 00 01, 31 80 42, 39 71 90", "email" : "lik-astana@mail.ru",
	  "address" : {
	    "@type" : "PostalAddress",
	    "streetAddress" : "ул. Бейбитшилик, 71 кв. 19 пересечение ул. Бейбитшилик (Мира) и ул. А. Молдагуловой (9 Мая), вход с проезжей части, вывеска Лик",
	    "addressLocality" : "Астана",
	    "addressCountry" : "Республика Казахстан",
	    "postalCode" : "010000"
	  },
	  "openingHoursSpecification" : {
	    "@type" : "OpeningHoursSpecification",
	    "dayOfWeek" : {
	      "@type" : "DayOfWeek",
	      "name" : "понедельник - пятница с 9:00 до 19:00, обед с 13:00 до 14:00;"
	   },
	   "opens" : "9:00 до 19:00",
	   "closes" : "13:00 до 14:00"
	   },
	   "image" : "https://lik-astana.kz/images/logo-schema.jpg"
	   },
	   "url" : "https://lik-astana.kz/",
	{
	  "@context": "http://schema.org", "@type": "Organization", "url": "https://lik-astana.kz", "logo": "https://lik-astana.kz/images/mabile_logo.png"
	},
	{
	  "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement":
	  [{
	    "@type": "ListItem", "position": 1,
	    "item": { "@id": "https://lik-astana.kz/", "name": "Главная" }
	  },{
	    "@type": "ListItem", "position": 2,
	    "item": { "@id": "https://lik-astana.kz/o-kompanii.html", "name": "О КОМПАНИИ" }
	  },{
	    "@type": "ListItem", "position": 3,
	    "item": {  "@id": "https://lik-astana.kz/kontakty.html", "name": "Контакты"}
	    }]
	}
</script>

это файл целиком и подключается он в шаблон в head
include JPATH_BASE . DS . 'templates' . DS . 'lik-astana' . DS . 'html' . DS . 'schema.php';

laimas 20.03.2018 10:23

Цитата:

Сообщение от Stas1985
Файл schema.php и есть такого вида

Вы что руками готовите этот объект, он статичен и не изменяется?

Stas1985 20.03.2018 10:58

Да он не изменяется.

laimas 20.03.2018 11:09

Цитата:

Сообщение от Stas1985
Да он не изменяется.

Все равно это плохо, но дело хозяйское. Коли руками, значит проверяйте везде в коде формирование таких объектов и исправляйте ошибки.

А каким образом он, безымянный, у вас работать будет, это уж вам виднее.

Stas1985 20.03.2018 13:36

А зачем вообще менять в нем данные ведь этот код структурированных данных гугла и проверку он проходит
https://search.google.com/structured-data/testing-tool

laimas 20.03.2018 13:51

Цитата:

Сообщение от Stas1985
в нем данные ведь этот код структурированных данных гугла

Какое отношение к данным вашего сервера имеет Гугл? Или вы выставляете ему для проверки, а результат вставляете себе? Это как понимать?

Пусть ваш сайт, это о компании "LocalBusiness" и ее характеристики как то адрес, тип деятельности и т.п., не изменяется. И хотя адрес, телефоны, и подобное, это данные не вечные во времени, бог с ним, это у вас в файле прописано. Но все другие ресурсы на сайте, а они принадлежат этой компании, связаны с ней - как можно так хранить данные на сервере, когда "голова" в файле, а все ей принадлежащее в базе?

Вы наверное даже и не знаете понятия "дерево", по которому в общем то и строится меню сайта, и оно всегда будет иметь "голову".

Stas1985 20.03.2018 14:43

А причем здесь меню
Вот страница проверки
https://search.google.com/structured...k-astana.kz%2F
данный код что в schema.php дает гугл
Сам schema.php находится в тегах
<head>
<jdoc:include type="head" />
<?php include JPATH_BASE . DS . 'templates' . DS . 'lik-astana' . DS . 'html' . DS . 'schema.php'; ?>
</head>

и к меню он вроде как отношение не имеет

laimas 20.03.2018 15:04

Какое отношение данные сервера имеют к проверке?
Данные, это данные, у вас баг в их представлении, и даже эта валидация этого не замечает.

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

Stas1985 20.03.2018 15:16

Подскажите пожалуйста как правильно буду переделывать.
Так же вопрос в фильтре остался открытым.
Данную разметку скорее всего уберем со всех страниц и оставим только на главной.

laimas 20.03.2018 15:28

Цитата:

Сообщение от Stas1985
Так же вопрос в фильтре остался открытым.

У вас при работе фильтра и выдаются ошибки связанные с тем о чем выше разговор.

Цитата:

Сообщение от Stas1985
Подскажите пожалуйста как правильно буду переделывать.

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

Stas1985 20.03.2018 15:31

Сейчас вообще отключил
// include JPATH_BASE . DS . 'templates' . DS . 'lik-astana' . DS . 'html' . DS . 'schema.php';

и на страницах этого кода нет

laimas 20.03.2018 15:46

Зато есть в файле vmprices.js, сразу при загрузке страницы выдает.

Файл этот сжат, распакуйте его и подключите распакованный и проверяйте ошибку в нем по указанной строке. Либо прокручивайте до указанной позиции (второе число в сообщении об ошибке) и ....

laimas 20.03.2018 15:53

Ошибки, ноги которых я так полагаю с того же места, что и ранее, растут, есть и в файлах general.js и rezultaty.html

Stas1985 02.04.2018 15:26

Файлы привел к читаемому виду
_https://update.lik-astana.kz/media/system/js/mootools-core.js
_https://update.lik-astana.kz/modules/mod_cf_filtering/assets/general.js
Подскажите как устранить ошибку. В js вообще не селен.

laimas 02.04.2018 18:56

Ошибки в других js файлах. Вы что их руками сжимаете или что творится у вас, если ошибки SyntaxError: unexpected token: ...? Это файл vmprices.js.

В general.js Virtuemart.product is not a function, это уже не синтаксис, а попытка вызвать функцией то, что ею не является.

Может вам в раздел Работа и заказать работу? У кого есть время и желание сделают.

Stas1985 03.04.2018 06:24

Сейчас осталась одна ошибка
Цитата:

Uncaught TypeError: Cannot read property 'style' of null
Данную ошибку вызывает код
var el = document.getElementById("content60"); 
el.style.cssText="width:940px;";

этот код служит для перехвата ширины блока и замене на значение width:940px;
но он не работает

laimas 03.04.2018 06:42

el.style.width = "940px";

style.cssText - для описания множества стилей.

Stas1985 03.04.2018 06:54

Вы имели в веду
var el = document.getElementById("content60"); 
/* el.style.cssText="width:940px;"; */
el.style.width = "940px";

перехватить и изменить значение надо у блока content60.

laimas 03.04.2018 07:01

Цитата:

Сообщение от Stas1985
перехватить и изменить значение надо у блока content60

Это никоим образом ничего не перехватывает, это правильное изменения стиля у заданного элемента, а el.style.cssText="width:940px;", это ошибка.

Перехватывать, это отслеживать событие и обрабатывать его.

Stas1985 03.04.2018 07:14

Вот так вот
alert(document.content60.style.width:940px);

получаю ошибку
Цитата:

SyntaxError: missing ) after argument list

laimas 03.04.2018 07:18

Цитата:

Сообщение от Stas1985
alert(document.content60.style.width:940px);

Вы видите как вам написали? А вы что пишите?

И при чем тут alert?

Stas1985 03.04.2018 07:23

Вот так работает
content60.style.width="940px"

Но отдает так-же ошибку
Цитата:

SyntaxError: missing ) after argument list

laimas 03.04.2018 07:28

Цитата:

Сообщение от Stas1985
content60.style.width="940px"

Здесь нет ошибки!

Stas1985 03.04.2018 07:30

Да
content60.style.width="940px"

Работает без ошибки.
Спасибо!

laimas 03.04.2018 07:43

content60 - это id и будет объект, но все таки пишите так:

document.getElementById("content60").style....

или так

document.querySelector("#content60").style.....


Часовой пояс GMT +3, время: 15:00.