Как дублировать на сайт всю информацию с консоли браузера?
Я делаю сайт на React JS.
Необходимое требование, чтобы выводились логи браузера (все абсолютно: ошибки, предупреждения, cors ошибки и т.д.) в модалке на сайте, в реальном времени.
Это требуется при невозможности открыть консоль, когда сидим на сайте через телефоны, планшеты
Основной упор необходимо сделать на cors ошибки
Дополнительно:
Содержание
Ну..
Для ошибок оборачивать всё в try catch, очевидно.
Для предупреждений это конечно же не сработает.
Для console.log() и тд можно сделать "декоратор".
Будет ли это работать для выбрасываемых самим браузером сообщений - надо пробовать.
https://stackoverflow.com/questions/6604192/showin...
А вот браузерные и т.п. - которые не могут быть обёрнуты или отловлены в try-catch - уже не знаю как.
Так что без прослойки, мне кажется, это не реализуемо на просто js
Ещё можно посмотреть в сторону service worker
Ответы:
К чему эти извращения?
https://developer.chrome.com/docs/devtools/remote-...
- LookyLoos, ну и для ios это тоже возможно.
Начать можно отсюда:
https://medium.com/@haroonabbasi/remote-debugging-...
https://github.com/HimbeersaftLP/ios-safari-remote... - Требования такие, ну и уже стало очень интересно - как это можно осуществить без отладок с подключением к компьюетру
- LookyLoos, Странные требования. Скорее всего вы просто не знали об удаленной отладке, и не пробовали её.
Но в принципе, такие требования могут быть. Например на codepen реализована собственная веб-консоль. Я не знаю как именно там сделано, но вы можете просто переопределить системный объект console.
https://habr.com/ru/articles/116852/
- Сергей delphinpro, Интересная статья, почитаю
Если нужно прям что-то своё, уникальное, то вам достаточно переинициализировать console.log своей функцией, например console.log = () => {}, ну и по такой же схеме console.error и т.д.
А если вам нужно только для отладки, то рекомендую https://github.com/liriliri/eruda, это эмулятор dev tools
Ошибки вы сможете перехватить в window.onerror например, но только те которые не обвёрнуты в try catch, тут нужно будет самостоятельно обрабатывать каждый try catch
- Хм, на сколько мне известно, window.onerror показывает ошибки только, если html блок не удалось отобразить. Идея интересна, но к сожалению не отлавливает то, что мне нужно.
console.log = () => {} - тоже прикольная тема, но при условии, если в коде мы сами пытаемся обратиться к console.log. - Только не "переинициализировать", а переопределить)
- LookyLoos, window.onerror показывает все ошибки, которые ни кто не обрабатывает, https://learn.javascript.ru/exception#poslednyaya-..., правда CORS не отловит, тут вручную придётся
|
1 |
import React, { useEffect, useState } from 'react'; const ConsoleLog = () => { const [logs, setLogs] = useState([]); useEffect(() => { const consoleLog = console.log; console.log = (message) => { setLogs((prevLogs) => [...prevLogs, message]); consoleLog.apply(console, arguments); }; }, []); return ( <div> <button onClick={() => setLogs([])}>Clear logs</button> {logs.map((log, index) => ( <p key={index}>{log}</p> ))} </div> ); }; export default ConsoleLog; |
- Прикольная штука, к сожалению она отображает только те логи, которые мы пишем в коде вручную и только первую часть: console.log("это отображается", это уже нет, просто символами)
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
Для дублирования всей информации с консоли браузера на сайт можно воспользоваться JavaScript. Для этого необходимо использовать метод console.log() для вывода информации в консоль браузера и затем передать эту информацию на страницу сайта.
Пример кода на JavaScript для дублирования информации с консоли на сайт:
Этот код переопределяет метод console.log(), чтобы он выводил информацию как в консоль браузера, так и на странице сайта. Теперь при вызове console.log() информация будет дублироваться на странице.
Примечание: Помните, что использование этого метода может быть полезным для отладки, но не рекомендуется использовать его на продакшен сайте из-за потенциальных проблем с безопасностью и производительностью.