Почему в консоль вылетает VK is not defined или Cannot read properties of null (reading 'insertBefore')?
Всем доброй ночи.
Использую Open Api для работы с vk api. Подключаю асинхронно. На локалке все работает прекрасно. Задеплоила на gh-pages - выдало ошибку при попытке подгрузить пользователей.
Поддержка вк сказала, что:
"Эта ошибка может означать, что на момент вызова скрипт openapi.js еще не загрузился. Вам нужно найти способ исправить это. Вызывайте функции, связанные с VK, только после того, как openapi.js будет загружен."
Подключила синхронно, как опять же указано в документации vk api, в той ее части, что связана с Open API.
Получила другую ошибку:
И в отличие от предыдущей, я ее получаю не только на gh-pages, но и на локалке.
На что поддержка вк вежливо сказала, что вопросами Open API она не занимается.
Собственно, обращаюсь сюда: может кто сталкивался с такой проблемой? У меня 0 идей, что эта адская машина от меня хочет.
Дополнительно:
Ссылку на реп с кодом можно?
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос




Проблема "VK is not defined" или "Cannot read properties of null (reading 'insertBefore')" обычно возникает из-за того, что переменная или объект не были определены до их использования. Давайте разберем оба случая:
1. "VK is not defined":
Это означает, что переменная "VK" не была объявлена или инициализирована перед использованием. Чтобы избежать этой ошибки, убедитесь, что переменная "VK" была объявлена до ее использования. Например:
var VK = {}; // объявляем переменную "VK" VK.someFunction(); // вызываем функцию
2. "Cannot read properties of null (reading 'insertBefore')":
Это означает, что попытка обратиться к свойству объекта, который равен null, вызывает ошибку. Чтобы избежать этой ошибки, убедитесь, что объект был корректно инициализирован перед обращением к его свойствам. Например:
var element = document.getElementById('someElement'); // получаем элемент по его id if (element) { var newElement = document.createElement('div'); // создаем новый элемент element.insertBefore(newElement, element.firstChild); // вставляем новый элемент перед первым потомком }
Проверьте свой код на наличие этих ошибок и убедитесь, что все переменные и объекты были правильно инициализированы перед использованием. Использование консоли разработчика в браузере поможет вам быстро найти и исправить подобные ошибки.