TypeError <анонимный> ошибка javascript

Мы используем sentry.io / ravenjs для отслеживания ошибок JavaScript. Мы видим огромное количество ошибок со следующими деталями:

document.getElementsByClassName.ToString is not a function

    <anonymous> at line 1:33

Детали для пользователей / устройств, генерирующих эту ошибку, очень похожи:

browser: Chrome 59.0.3071 (100%)
device: Samsung (100% / different models)
OS: Android (100%  / different versions)

Ошибку генерируют разные пользователи, но мы не знаем, как ее смоделировать или решить. Об ошибке не сообщается ни в одном другом браузере, устройстве или операционной системе. Есть ли у кого-нибудь мысли, как это решить.

Обновление: как указывалось, сообщенная ошибка - это ToString, а не toString, что имеет больше смысла. Поскольку эта ошибка возникает только на определенном устройстве / браузере, маловероятно, что проблема связана с неопределенным свойством или функцией. Если это так, то ошибка должна возникать и на других устройствах / браузерах.

Текст ToString нельзя найти в наших собственных сценариях JavaScripts или сторонних сценариях Java.

document.getElementsByClassName - это функция, которая запускается в браузере, document.getElementsByClassName('class') вроде таковой. Браузер определенно сообщает об ошибке, но разработчик, возможно, применил блок try catch, чтобы ошибка не генерировалась.
Akshay Khandelwal 10.07.2018 14:35

Это не ToString, это toString. Но зачем вам toString из getElementsByClassName, я понятия не имею.

Keith 10.07.2018 14:36

Я не уверен, что объект HTMLCollection, возвращаемый getElementsByClassName, имеет метод toString (как указано выше, ToString определенно не является стандартным методом)

D Lowther 10.07.2018 14:38

Я согласен, что странно, что сообщенная ошибка - это ToString вместо toString. Однако, если это проблема, ошибка может возникнуть и в других браузерах. Но это не так.

Nebu 10.07.2018 14:45
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
515
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Если вы хотите получить элемент по имени его класса, вы должны использовать:

document.getElementsByClassName('yourClass');

Однако это вернет функциональность «document.getElementsByClassName» и то, как ее использовать, какие параметры использовать и т. д.

document.getElementsByClassName.toString();

Если вы хотите получить строку своего элемента html, вы должны использовать это:

document.getElementsByClassName('yourClass')[0].outerHTML;

Ошибка возникает только на мобильном устройстве Samsung с Chrome 59.0.3071. Если проблема была в неисправной функции, не должна ли ошибка возникать на всех / нескольких устройствах?

Nebu 10.07.2018 15:01

Это не совсем ошибка, это скорее предупреждение. Вы можете взять любую функцию, связанную с HTML, например «документ», и добавить к ней что угодно, например «document.blabla», это не должно приводить к сбою вашей программы и должно говорить только «undefined». Если вы добавите к нему «()», он попытается найти существующую функцию и выдаст вам ошибку, поскольку она, вероятно, не существует.

samecat 10.07.2018 15:13
Ответ принят как подходящий

Проблема с браузером, https://github.com/SamsungInternet/support/issues/56

Другие вопросы по теме